文档中心
SSL璇佷功鍦∟ginx涓殑閰嶇疆涓庝紭鍖栦粠鍏ラ棬鍒板疄鎴樿瑙?txt
时间 : 2025-09-27 16:45:51浏览量 : 2

****
“为什么我的网站地址栏显示‘不安全’?”这是许多站长和开发者的常见困惑。答案很简单:你的网站可能缺少SSL证书,或者配置不当。SSL证书就像网站的“身份证”和“加密信封”,而Nginx则是全球最流行的Web服务器之一。本文将用大白话+实战案例,带你彻底搞懂SSL证书在Nginx中的配置与优化。
一、SSL证书是什么?为什么需要它?
比喻理解:
想象你要给朋友寄一封机密信件。SSL证书相当于:
1. 身份证(验证你是真实的“xx银行”而非钓鱼网站)
2. 加密信封(传输中没人能偷看内容)
没有SSL的后果:
- 用户看到浏览器警告(直接流失客户)
- 数据明文传输(密码、银行卡号裸奔)
- SEO排名降权(谷歌明确优先HTTPS站点)
案例:
某电商网站未部署SSL,用户提交订单时信用卡信息被黑客截获,导致大规模数据泄露。
二、Nginx中SSL证书的三种获取方式
1. 免费证书(Let's Encrypt)
适合个人博客、测试环境:
```bash
用Certbot自动获取并配置(一条命令搞定)
sudo certbot --nginx -d yourdomain.com
```
*优点*:免费、自动化续签
*缺点*:每3个月需续签一次
2. 商业付费证书(DigiCert/Sectigo)
适合企业级应用:
- OV/EV证书显示公司名称(增强信任度)
- 提供更高的赔付保障
3. 自签名证书
本地开发用,浏览器会报警告:
```nginx
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout self.key -out self.crt
三、Nginx配置SSL的完整流程(附代码)
步骤1:上传证书文件
将`.crt`和`.key`文件放到`/etc/nginx/ssl/`目录下。
步骤2:修改Nginx配置
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/yourdomain.crt;
ssl_certificate_key /etc/nginx/ssl/yourdomain.key;
强制HTTPS跳转(重要!)
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
}
步骤3:测试并重启
sudo nginx -t
测试配置
sudo systemctl restart nginx
四、高级优化技巧
1. 启用HTTP/2提升速度
listen 443 ssl http2;
比HTTP/1.1快50%+
2. 选择更安全的加密套件
禁用老旧算法:
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
3. OCSP Stapling减少延迟
避免浏览器额外验证:
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8;
五、常见问题排查
1. 错误:“NET::ERR_CERT_COMMON_NAME_INVALID”
→ 检查域名是否与证书匹配,比如`www.example.com`≠`example.com`
2. 错误:“SSL handshake failed”
→ Nginx版本过旧,升级到最新版支持TLSv1.3
3. 性能变慢?
→ 开启会话复用减少握手开销:
```nginx
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
```
六、 Checklist
? HTTPS不是可选项而是必选项
? Let's Encrypt适合个人,企业推荐OV/EV证书
? Nginx配置后务必测试跳转和混合内容问题
? HTTP/2+OCSP Stapling能显著提升体验
通过以上步骤,你的网站将获得绿色小锁标志,用户数据和SEO排名双丰收!
TAG:ssl的证书nginx,nginx安装ssl证书,ssl nginx,nginxssl证书配置,nginx ssl ciphers,nginx更换ssl证书