文档中心
NginxHTTPS璇佷功瀵煎叆鍏ㄦ敾鐣ユ墜鎶婃墜鏁欎綘閰嶇疆SSL瀹夊叏鍔犲瘑
时间 : 2025-09-27 16:25:58浏览量 : 2

在当今互联网环境中,HTTPS已成为网站安全的标配。作为运维人员或开发者,掌握Nginx HTTPS证书导入是必备技能。本文将用最通俗的语言,结合实战案例,带你一步步完成证书配置。
一、为什么需要HTTPS证书?
想象一下:你寄送一份机密文件,如果直接用明信片邮寄(HTTP),任何人都能中途偷看。但若用保险箱上锁(HTTPS),只有持有钥匙的人才能打开。HTTPS证书就是这个"保险箱",它通过SSL/TLS加密实现:
1. 防窃听:加密数据传输(如密码、银行卡号)
2. 防篡改:确保内容不被中间人修改
3. 身份认证:证明你是网站真实所有者(地址栏显示??标志)
*真实案例*:2025年某电商平台因未启用HTTPS,导致用户支付页面被注入恶意代码,造成数百万损失。
二、准备工作:获取证书的三种方式
1. 商业CA证书(推荐生产环境使用)
- 如DigiCert、GlobalSign等机构签发
- 浏览器100%信任(含根证书链)
- *费用*:约$50-$1000/年不等
2. Let's Encrypt免费证书
```bash
示例:使用certbot自动获取
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com
```
- 有效期90天,需配置自动续期
3. 自签名证书(仅测试用)
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/nginx/ssl/self.key -out /etc/nginx/ssl/self.crt
- 浏览器会显示警告,适合内网环境
三、Nginx证书导入详细步骤(以商业证书为例)
假设已获取以下文件:
- `domain.crt` :主证书文件
- `domain.key` :私钥文件
- `ca_bundle.crt` :CA中间证书
Step1: 合并证书链
cat domain.crt ca_bundle.crt > combined.crt
*为什么需要合并?* → Nginx要求将主证书和中间证书拼接在一起,否则某些浏览器会提示"证书链不完整"错误。
Step2: 上传到服务器
建议存放在专用目录并设置权限:
mkdir -p /etc/nginx/ssl/
chmod 700 /etc/nginx/ssl/
mv combined.crt domain.key /etc/nginx/ssl/
Step3: 修改Nginx配置
```nginx
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/combined.crt;
ssl_certificate_key /etc/nginx/ssl/domain.key;
强化安全配置(重要!)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
...其他配置...
}
Step4: 测试并重载配置
nginx -t
检查语法是否正确
systemctl reload nginx
四、常见问题排查指南
Q1: Chrome报错"NET::ERR_CERT_AUTHORITY_INVALID"
? *检查项*:
1. CA中间证书是否遗漏?
2. 证书是否过期?(`openssl x509 -in combined.crt -noout -dates`)
3. SNI(Server Name Indication)是否配置正确?
Q2: SSL握手失败导致502错误
? *抓包分析*:
openssl s_client -connect example.com:443 -servername example.com -showcerts
可能原因:
- 私钥不匹配(可通过`openssl x509 -noout -modulus`比对MD5值)
- TLS版本不兼容(如客户端只支持TLS1.0而服务器禁用了它)
Q3: iOS设备无法访问
? *特殊处理*:
苹果设备对证书链要求更严格,需确保:
1. CA根证书来自Apple信任列表
2. OCSP装订已启用:
```nginx
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 valid=300s;
```
五、高阶安全优化建议
1?? 启用HSTS头
强制浏览器只通过HTTPS访问:
```nginx
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
2?? 定期轮换密钥
每年更换一次私钥,即使未泄露也需更换(参考PCI DSS标准)
3?? 监控到期时间
使用Nagios或Prometheus监控工具设置告警:
```bash
echo | openssl s_client -connect example.com:443 | openssl x509 -noout -enddate
通过以上步骤,你的Nginx服务器将具备企业级HTTPS防护能力。记住:安全不是一次性的工作,定期更新和维护才是关键。如果有更多疑问,欢迎在评论区交流!
TAG:nginx https证书导入,nginx配置证书链,nginx ca证书,nginx配置cer证书,nginx添加ssl证书