找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6148|回复: 0

Nginx HTTPS证书部署与SSL环境搭建

[复制链接]

1

主题

0

回帖

5

积分

新手上路

积分
5
发表于 2026-8-11 14:47:57 | 显示全部楼层 |阅读模式
在Nginx上部署HTTPS证书并搭建SSL环境主要涉及获取SSL证书、配置Nginx以使用该证书,以及调整防火墙和安全设置。以下是详细的步骤:

1. 获取SSL证书

首先,你需要从证书颁发机构(CA)获取SSL证书。常见的CA包括Let's Encrypt(免费)、DigiCert、Comodo等。

使用Let's Encrypt获取免费证书:

  • 安装Certbot
  • 在Ubuntu上:
    1. sudo apt-get install certbot
    复制代码
  • 在CentOS上:
    1. sudo yum install certbot
    复制代码
  • 获取证书
  • 运行
    1. sudo certbot certonly --webroot -w /var/www/html -d yourdomain.com
    复制代码
    (替换
    1. yourdomain.com
    复制代码
    为你的域名)。
  • 或者使用其他插件,如Nginx插件:
    1. sudo certbot --nginx
    复制代码
  • 证书位置
  • 证书文件通常位于
    1. /etc/letsencrypt/live/yourdomain.com/
    复制代码
    ,包括
    1. fullchain.pem
    复制代码
    (证书链)和
    1. privkey.pem
    复制代码
    (私钥)。


2. 配置Nginx以使用SSL

  • 编辑Nginx配置文件
  • 通常位于
    1. /etc/nginx/sites-available/default
    复制代码
    1. /etc/nginx/conf.d/your_config.conf
    复制代码

  • 配置SSL服务器块

  
  1. server {
  2.        listen 443 ssl;
  3.        server_name yourdomain.com;
  4.        ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
  5.        ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
  6.        ssl_session_cache shared:SSL:10m;
  7.        ssl_session_timeout 10m;
  8.        ssl_protocols TLSv1.2 TLSv1.3;
  9.        ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256...'; # 推荐使用强加密套件
  10.        # 其他配置...
  11.        location / {
  12.            root /var/www/html;
  13.            index index.html index.htm;
  14.        }
  15.    }
  16.    # 可选:将HTTP重定向到HTTPS
  17.    server {
  18.        listen 80;
  19.        server_name yourdomain.com;
  20.        return 301 https://$host$request_uri;
  21.    }
复制代码

  • 检查配置并重新加载Nginx
  • 检查配置:
    1. sudo nginx -t
    复制代码
  • 重新加载配置:
    1. sudo systemctl reload nginx
    复制代码
    1. sudo service nginx reload
    复制代码


3. 调整防火墙

  • 确保防火墙允许HTTPS流量(端口443):
  • 使用
    1. ufw
    复制代码
    1. sudo ufw allow 'Nginx Full'
    复制代码
    1. sudo ufw allow 443/tcp
    复制代码
  • 使用
    1. firewalld
    复制代码
    1. sudo firewall-cmd --permanent --add-service=https
    复制代码
    然后
    1. sudo firewall-cmd --reload
    复制代码


4. 强化SSL/TLS配置(可选但推荐)

  • 使用强加密套件:在Nginx配置中指定强加密套件,避免使用已知不安全的算法。
  • 启用HTTP严格传输安全(HSTS):在Nginx配置中添加
    1. add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    复制代码

  • 禁用旧协议:如SSLv2和SSLv3,仅使用TLSv1.2及以上。


5. 定期更新证书

  • Let's Encrypt证书的有效期为90天,建议设置自动续期。
  • Certbot通常会自动设置续期,但你可以测试续期过程:
    1. sudo certbot renew --dry-run
    复制代码


6. 监控和维护

  • 定期检查Nginx日志:
    1. /var/log/nginx/error.log
    复制代码
    1. /var/log/nginx/access.log
    复制代码

  • 使用在线工具(如SSL Labs的SSL Test)检查你的SSL配置是否安全。


通过以上步骤,你可以在Nginx上成功部署HTTPS证书并搭建一个安全的SSL环境。确保定期更新和维护你的证书和配置,以保持服务的安全性。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|五云论坛 ( 黔ICP备2022001370号-1|贵公网安备52032102000798号 )

GMT+8, 2026-9-12 18:13 , Processed in 0.073786 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表