文档中心
Nginx浣跨敤SSL璇佷功鐢宠鍏ㄦ敾鐣ヤ粠闆跺紑濮嬫瀯寤篐TTPS瀹夊叏绔欑偣
时间 : 2025-09-27 16:26:29浏览量 : 2

在当今互联网环境中,HTTPS已成为网站安全的基础标配。作为最流行的Web服务器之一,Nginx配置SSL证书是实现HTTPS的关键步骤。本文将以"手把手"教学的方式,详解Nginx如何申请和部署SSL证书,涵盖Let's Encrypt免费证书和商业证书两种方案,并附带常见问题排查技巧。
一、SSL证书类型选择:免费VS商业
1. Let's Encrypt免费证书(适合个人站点)
- 特点:90天有效期,需定期续签
- 优势:完全免费、自动化程度高
- 示例场景:个人博客、测试环境
```bash
安装Certbot工具(以Ubuntu为例)
sudo apt install certbot python3-certbot-nginx
```
2. 商业付费证书(适合企业级应用)
- 推荐品牌:DigiCert、GeoTrust、Symantec
- 优势:最长2年有效期、保险赔付、兼容性保障
- 示例场景:电商平台、金融系统
二、实战演练:Nginx配置SSL全流程
方案A:使用Certbot自动申请(Let's Encrypt)
步骤1:一键式获取证书
sudo certbot --nginx -d example.com -d www.example.com
*注:将example.com替换为你的真实域名*
步骤2:验证Nginx自动生成的配置
```nginx
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
其他配置...
}
方案B:手动安装商业证书
1. CSR生成(证书签名请求):
openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr
2. 上传CSR到CA机构,完成域名验证后获取:
- CRT文件(主证书)
- CA Bundle(中间证书链)
3. Nginx配置示例:
ssl_certificate /path/to/your_domain.crt;
ssl_certificate_key /path/to/your_domain.key;
ssl_trusted_certificate /path/to/ca_bundle.crt;
三、高级安全加固配置
1. HTTP强制跳转HTTPS
listen 80;
return 301 https://$host$request_uri;
2. SSL协议优化(禁用不安全的TLS版本)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
3. HSTS头增强防护
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
四、常见问题排错指南
? 错误1:"SSL_CTX_use_PrivateKey_file" failed
? *解决*:确保证书和私钥匹配,使用命令验证:
openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in private.key | openssl md5
两个MD5值必须相同
? 错误2:浏览器提示"不安全连接"
? *检查清单*:
1. 中间证书是否完整?
2. 系统时间是否正确?
3. SNI是否启用?(多域名场景)
?? *诊断工具推荐*:
- SSL Labs测试(https://www.ssllabs.com/ssltest/)
- Chrome开发者工具 → Security面板
五、自动化维护技巧
对于Let's Encrypt证书,设置定时任务自动续期:
编辑crontab
0 */12 * * * certbot renew --quiet --deploy-hook "systemctl reload nginx"
通过以上步骤,你的Nginx服务器将获得企业级HTTPS防护。记得每隔6个月检查一次SSL/TLS最佳实践更新,及时调整安全配置。如需处理更复杂的场景(如通配符证书、多域名SAN证书),可以参考Nginx官方文档进行扩展配置。
TAG:nginx使用ssl证书申请,nginx ssl pem,nginx添加ssl证书,nginx ssl_ciphers