文档中心
SSL璇佷功涓婁紶鍒癗ginx鍏ㄦ敾鐣ユ墜鎶婃墜鏁欎綘閰嶇疆HTTPS瀹夊叏杩炴帴
时间 : 2025-09-27 16:39:27浏览量 : 3
为什么你的网站必须装SSL证书?

想象一下你在咖啡馆用公共WiFi登录银行账户,如果没有SSL加密,你的账号密码就像写在明信片上邮寄——任何能截获流量的人都能看到。SSL证书(现在更准确叫TLS证书)就像给你的网站数据装上防弹车:
1. 加密传输:把"123456"变成"a7b9c2..."这样的乱码
2. 身份认证:让用户知道他们访问的是真正的你的网站
3. SEO加分:Google明确表示HTTPS是搜索排名因素
4. 合规要求:微信小程序等平台强制要求HTTPS
常见误区纠正:
- 免费证书(如Let's Encrypt)和付费证书加密强度相同
- 单域名、多域名、通配符证书适用不同场景
实战四步走:从获取到验证
第一步:准备你的"数字身份证"
以腾讯云申请免费SSL证书为例:
1. 控制台搜索「SSL证书」
2. 点击「申请免费证书」
3. 填写域名(支持*.example.com的通配符)
4. 选择DNS验证方式(比文件验证更可靠)
专业提示:`openssl req -newkey rsa:2048 -nodes -keyout example.key -out example.csr` 这个命令可以本地生成密钥对,私钥永远不要上传到服务器!
第二步:上传文件到Nginx的正确姿势
拿到证书后通常会得到三个文件:
- .crt文件(主证书)
- .key文件(私钥)
- CA链文件(可能有)
用WinSCP或scp命令上传到/etc/nginx/certs/目录(目录需要提前创建):
```bash
sudo mkdir -p /etc/nginx/certs/
sudo chmod 700 /etc/nginx/certs/
scp ./certificate.crt user@yourserver:/etc/nginx/certs/
```
第三步:Nginx配置的黄金模板
编辑/etc/nginx/sites-available/your_site.conf:
```nginx
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate /etc/nginx/certs/certificate.crt;
ssl_certificate_key /etc/nginx/certs/private.key;
TLS协议最佳实践
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
HSTS安全头
add_header Strict-Transport-Security "max-age=63072000" always;
location / {
root /var/www/html;
index index.html;
}
}
HTTP强制跳转HTTPS
listen 80;
return 301 https://$host$request_uri;
第四步:测试与排错指南
检查配置语法:`sudo nginx -t`
重载配置:`sudo systemctl reload nginx`
常见错误解决方案:
1. SSL_ERROR_RX_RECORD_TOO_LONG → Nginx没正确监听443端口
2. 证书链不完整 → 合并中间证书 `cat middle.crt >> certificate.crt`
3. 私钥不匹配 → 用 `openssl x509 -noout -modulus -in cert.crt | openssl md5`对比密钥指纹
高级玩家技巧包
OCSP装订提升性能
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 valid=300s;
这个设置能让浏览器不用每次去CA验证证书状态,提速30%以上。
Let's Encrypt自动化续期
安装certbot工具后,一条命令搞定续期和Nginx重载:
certbot renew --pre-hook "nginx -s stop" --post-hook "nginx"
加到crontab实现全自动:
0 */12 * * * root certbot renew --quiet
HTTPS安全体检清单
用这些工具给你的配置打分:
1. [SSL Labs测试](https://www.ssllabs.com/ssltest/) → A+评级攻略
2. `curl -vI https://example.com` → 查看详细握手过程
3. `nmap --script ssl-enum-ciphers -p443 example.com` → 密码套件审计
记住一个原则:"配置不是越复杂越好"。曾有客户因为堆砌了20个加密算法导致iOS设备无法访问——保持TLS1.2+ECDHE+AES256GCM这个黄金组合就够了。
TAG:ssl证书上传到nginx,ssl证书如何部署,ssl证书安装到域名上还是服务器上,ssl证书部署后打不开https的原因