ToB企服应用市场:ToB评测及商务社交产业平台

标题: Debian 12.0 上为 Nginx 设置 SSL/TLS 证书 [打印本页]

作者: 半亩花草    时间: 2024-12-27 14:32
标题: Debian 12.0 上为 Nginx 设置 SSL/TLS 证书
在 Debian 12.0 上为 Nginx 设置 SSL/TLS 证书,可以使用免费的 Let’s Encrypt 证书,通过工具 Certbot 主动完成证书获取和设置。以下是详细步骤:
  1. sudo apt update
  2. sudo apt install certbot python3-certbot-nginx -y
复制代码
在你的域名注册商控制面板中,将域名的 A 记录 和 CNAME 记录 指向你的服务器 IP 地址。
例如:
范例主机名值A@你的服务器 IP 地址 然后等待 DNS 剖析生效。可以通过以下命令验证 DNS 剖析是否正确:
  1. ping your-domain.com
复制代码
假如返回了你的服务器 IP,说明剖析已经生效。
Certbot 会主动为你的域名获取 Let’s Encrypt 的免费证书并设置 Nginx。
实行以下命令:
  1. sudo certbot --nginx -d your-domain.com -d www.your-domain.com
复制代码
  1. •        将 your-domain.com 替换为你的实际域名。
  2. •        如果你有多个域名,可以用 -d 参数添加更多域名。
复制代码
交互过程
Certbot 会提示你完成以下操作:
1. 输入邮箱地址,用于吸收证书过期提示。
2. 同意 Let’s Encrypt 服务条款。
3. 选择是否逼迫将 HTTP 流量重定向到 HTTPS(建议选择 2 逼迫重定向)。
Certbot 完成后,会看到如下提示:
  1. Successfully received certificate.
  2. Certificate is saved at: /etc/letsencrypt/live/your-domain.com/fullchain.pem
  3. Key is saved at: /etc/letsencrypt/live/your-domain.com/privkey.pem
复制代码
这表现证书已经乐成获取,并主动设置到了 Nginx。
Certbot 会主动修改 Nginx 的站点设置文件,例如 /etc/nginx/sites-available/your-domain.com,并添加如下内容:
  1. server {
  2.     listen 443 ssl;
  3.     listen [::]:443 ssl;
  4.     server_name your-domain.com www.your-domain.com;
  5.     ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
  6.     ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
  7.     ssl_protocols TLSv1.2 TLSv1.3;
  8.     ssl_ciphers HIGH:!aNULL:!MD5;
  9.     root /var/www/your-domain.com;
  10.     index index.html index.htm;
  11.     location / {
  12.         try_files $uri $uri/ =404;
  13.     }
  14. }
  15. server {
  16.     listen 80;
  17.     listen [::]:80;
  18.     server_name your-domain.com www.your-domain.com;
  19.     return 301 https://$host$request_uri;
  20. }
复制代码
测试 Nginx 设置是否正确:
  1. sudo nginx -t
复制代码
假如没有错误,重新加载 Nginx:
  1. sudo systemctl reload nginx
复制代码
在浏览器中访问 https://your-domain.com 和 https://www.your-domain.com,确认网站使用 HTTPS 并表现有效的锁标志。
你也可以通过以下命令验证证书:
  1. openssl s_client -connect your-domain.com:443 -servername your-domain.com
复制代码
Let’s Encrypt 的证书有效期为 90 天,Certbot 会主动安排续期。
可以手动测试续期命令,确保没有问题:
  1. sudo certbot renew --dry-run
复制代码
假如没有错误,说明主动续期功能已设置好。
你可以在 Nginx 设置中添加一些额外设置来提高安全性:
  1. ssl_protocols TLSv1.2 TLSv1.3;
  2. ssl_prefer_server_ciphers on;
  3. ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
  4. ssl_session_cache shared:SSL:10m;
  5. ssl_session_timeout 10m;
  6. # 禁用不安全的协议
  7. add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
  8. add_header X-Content-Type-Options nosniff;
  9. add_header X-Frame-Options DENY;
  10. add_header X-XSS-Protection "1; mode=block";
复制代码
生存后,重新加载 Nginx:
  1. sudo systemctl reload nginx
复制代码
总结
  1. 1.        安装 Certbot 和插件。
  2. 2.        配置域名 DNS 解析。
  3. 3.        使用 Certbot 获取和配置证书:certbot --nginx -d your-domain.com -d www.your-domain.com
  4. 4.        测试配置并重新加载 Nginx。
  5. 5.        验证 HTTPS 是否正常工作。
  6. 6.        确保自动续期功能正常:certbot renew --dry-run。
复制代码
如许,你的 Nginx 网站就乐成绑定了 HTTPS 证书,并且会主动续期,保持安全!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4