nginx 证书生成

博客展示了使用OpenSSL生成SSL证书的具体步骤,包括生成私钥、去除私钥加密、生成证书签名请求以及自签名证书等操作,通过一系列命令完成SSL证书的创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

openssl genrsa -des3 -out ssl.key 1024
mv ssl.key bak.key
openssl rsa -in bak.key -out ssl.key
rm bak.key 

openssl req -new -key ssl.key -out ssl.csr

sudo openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt

### 使用 Nginx 生成 SSL 证书的流程 通常来说,**Nginx 本身并不直接用于生成 SSL 证书**,而是通过 OpenSSL 工具来创建自签名证书或 CSR(证书签名请求),然后在 Nginx 中配置使用这些文件。以下是完整的操作步骤: #### 创建私钥文件 首先需要生成一个私钥文件,这是构建 SSL 证书的基础。 ```bash openssl genrsa -out server.key 2048 ``` 如果希望移除私钥的密码保护以方便后续 Nginx 自动加载,可以执行以下命令[^2]: ```bash mv server.key xxx.key openssl rsa -in xxx.key -out server.key rm xxx.key ``` #### 生成证书签名请求 (CSR) 基于上一步生成的私钥,创建 CSR 文件,这个文件将包含你的域名信息和其他可选信息。 ```bash openssl req -new -key server.key -out server.csr ``` #### 生成自签名证书 如果你只需要一个测试用的 SSL 证书,可以直接使用下面的命令生成一个有效期为 365 天的自签名证书[^2]: ```bash openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt ``` 若希望证书的有效期更长,例如 10 年,则可以修改 `-days` 参数为 `3650`。 #### 配置 Nginx 使用 SSL 证书 编辑 Nginx 的站点配置文件,添加 SSL 相关的设置。以下是一个典型的 HTTPS 配置示例[^3]: ```nginx server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /etc/nginx/cert/server.crt; ssl_certificate_key /etc/nginx/cert/server.key; ssl_session_timeout 5m; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass http://backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` #### 强制 HTTP 跳转 HTTPS 为了确保所有流量都经过加密传输,可以在 Nginx 中配置强制跳转规则[^3]: ```nginx if ($server_port !~ 443){ rewrite ^(/.*)$ https://$host$1 permanent; } ``` #### 重启 Nginx 服务 完成以上配置后,重新加载 Nginx 服务使更改生效。 ```bash systemctl reload nginx ``` ### 自动更新证书(Let’s Encrypt) 对于生产环境,推荐使用 Let’s Encrypt 提供的免费证书,并通过 Certbot 自动化管理证书的申请和续订过程。具体步骤如下: 1. 安装 Certbot 及其插件 ```bash yum install -y certbot python-certbot-nginx ``` 2. 获取并安装证书 ```bash certbot --nginx -d yourdomain.com ``` 3. 设置自动续订任务 编辑 crontab 文件,添加每日检查证书是否需要更新的任务[^1]: ```bash crontab -e ``` 添加如下行: ```bash 0 0 * * * /usr/bin/certbot renew --quiet ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多懂一些

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值