nginx配置https证书
证书路径:确保证书文件路径正确,并且 Nginx 进程有读取证书的权限。安全组设置:确保服务器的安全组或防火墙规则允许 443 端口的入站流量。证书续期:如果是使用 Let's Encrypt 等免费证书,需要定期续期证书以确保网站持续安全地运行。

要让 Nginx 支持处理 HTTPS 请求,主要步骤包括获取 SSL 证书以及修改 Nginx 的配置文件。
一、获取 SSL 证书
SSL 证书可以通过以下方式获取:
- 免费证书:可以从 Let's Encrypt 等免费证书颁发机构获取。Let's Encrypt 提供了免费的 SSL 证书,并且支持自动续期。
- 商业证书:可以从阿里云、腾讯云等商业证书颁发机构购买。商业证书通常提供更高级别的安全性和支持。
二、修改 Nginx 配置文件
-
打开配置文件:Nginx 的配置文件通常位于
/etc/nginx/nginx.conf或/etc/nginx/sites-available/default。使用文本编辑器打开该文件。 -
配置 HTTPS 服务器块:在配置文件中添加一个 HTTPS 服务器块。示例如下:
server { listen 443 ssl; # 监听 443 端口,启用 SSL server_name your_domain_or_IP; # 替换为你的域名或 IP 地址 ssl_certificate /path/to/your/certificate.crt; # 证书文件路径 ssl_certificate_key /path/to/your/certificate.key; # 私钥文件路径 ssl_protocols TLSv1.2 TLSv1.3; # 支持的 SSL/TLS 协议版本 ssl_ciphers HIGH:!aNULL:!MD5; # 加密套件 location / { root /var/www/html; # 网站根目录 index index.html; # 默认首页文件 } } -
配置 HTTP 重定向到 HTTPS:为了确保所有用户都通过 HTTPS 访问网站,可以配置 HTTP 重定向。示例如下:
server { listen 80; # 监听 80 端口 server_name your_domain_or_IP; # 替换为你的域名或 IP 地址 return 301 https://$host$request_uri; # 将 HTTP 请求重定向到 HTTPS }
三、测试配置并重启 Nginx
-
测试配置:在保存配置文件后,使用以下命令测试配置文件的语法是否正确:
nginx -t如果配置文件有错误,终端会显示错误信息,请根据提示进行修正。
-
重启 Nginx:如果配置文件语法正确,使用以下命令重启 Nginx 服务以应用更改:
sudo systemctl restart nginx
四、验证 HTTPS 是否生效
- 浏览器访问:在浏览器中访问你的网站,查看是否已经启用了 HTTPS。如果启用了 HTTPS,浏览器地址栏会显示一个绿色的锁头图标。
- 在线工具检测:可以使用在线工具(如 SSL Labs)来检测你的 SSL 配置是否安全、有效。
五、注意事项
- 证书路径:确保证书文件路径正确,并且 Nginx 进程有读取证书的权限。
- 安全组设置:确保服务器的安全组或防火墙规则允许 443 端口的入站流量。
- 证书续期:如果是使用 Let's Encrypt 等免费证书,需要定期续期证书以确保网站持续安全地运行。
Let"s Encrypt证书自动续期
Let's Encrypt 证书可以通过多种方式实现自动续期,以下是详细步骤和说明:
一、使用 Certbot 自动续期
Certbot 是 Let's Encrypt 官方推荐的客户端工具,它可以帮助你自动申请和续期证书。
-
安装 Certbot:
- Ubuntu/Debian:
sudo apt update sudo apt install certbot - CentOS/RHEL:
sudo yum install epel-release sudo yum install certbot - 其他操作系统可以参考 Certbot 官网进行安装。
- Ubuntu/Debian:
-
获取证书:
安装好 Certbot 后,你可以通过以下命令获取证书(以 Nginx 为例):
sudo certbot --nginx此命令将自动为你的 Nginx 服务器配置 SSL 证书。
-
配置自动续期:
Let's Encrypt 的证书有效期为 90 天,但 Certbot 可以自动为你续期证书。默认情况下,Certbot 会在 Linux 系统中创建一个定时任务,自动在证书过期前 30 天进行续期。你可以通过以下命令检查定时任务是否已经存在:
sudo systemctl list-timers如果没有看到相关的续期任务,可以手动设置一个定时任务。使用以下命令编辑 crontab:
sudo crontab -e然后在 crontab 中添加以下行,每天凌晨 1 点自动执行证书续期:
0 1 * * * certbot renew --quiet这将确保 Certbot 每天检查一次证书是否需要续期,如果需要,它会自动续期而不打扰你。
-
验证续期是否成功:
为了确保自动续期配置正确,可以手动模拟一次续期过程,确保一切正常:
sudo certbot renew --dry-run该命令会模拟一个续期过程,但不会实际更换证书。
二、使用宝塔面板自动续期
如果你使用的是宝塔面板,也可以通过宝塔面板实现 Let's Encrypt 证书的自动续期。
-
手动续签:
在宝塔面板中,点击网站设置后台的【SSL】》【Let's Encrypt】》【续签】。点击续签之后,自动开始 Let's Encrypt 免费证书的续签。
-
自动续签:
宝塔面板还提供了计划任务功能,可以自动续签 Let's Encrypt 证书。在宝塔面板后台,点击【计划任务】,然后添加一条 Shell 脚本任务。
- 任务名称:可以任意填写。
- 执行周期:可以设置为每天。
- 脚本内容:填入以下脚本:
/www/server/panel/pyenv/bin/python /www/server/panel/class/acme_v2.py --renew=1 - 最后点击【添加任务】即可。
三、注意事项
-
防火墙设置:
确保服务器的防火墙或安全组规则允许 80 和 443 端口的入站流量,以便 Certbot 可以进行域名验证和证书续期。
-
域名解析:
在申请证书或续期前,确保域名已正确解析到服务器 IP 地址。
-
定期检查:
建议定期检查证书续期状态,以确保网站始终保持 HTTPS 安全连接。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)