文档中心
Nginx閰嶇疆SSL璇佷功鍏ㄦ敾鐣ヤ粠鍏ラ棬鍒板疄鎴樿瑙?txt
时间 : 2025-09-27 16:27:41浏览量 : 3

****
当你在浏览器里访问一个网站时,看到地址栏左侧的“小锁”图标,说明这个网站启用了SSL证书(比如 `https://` 开头的网址)。这就像给数据加了“防窃听保险箱”,而Nginx作为最流行的Web服务器之一,配置SSL证书是保护用户隐私的必备技能。本文用大白话+实操案例,带你彻底搞懂Nginx的SSL证书配置。
一、SSL证书是什么?为什么需要它?
例子类比:
想象你要在网上输入银行卡密码。如果网站没有SSL,数据就像“明信片”在网络上传递,谁都能偷看;有了SSL后,数据变成“加密保险箱”,只有你和服务器有钥匙。
核心作用:
1. 加密传输:防止黑客窃听(如公共WiFi下的流量劫持)。
2. 身份认证:证明网站真实身份(避免假冒银行网站)。
3. SEO加分:谷歌等搜索引擎优先排名HTTPS网站。
二、Nginx中SSL证书的配置步骤(附代码)
1. 获取SSL证书
常见途径:
- 免费证书:Let's Encrypt(适合个人博客)
```bash
用Certbot工具自动申请(以Ubuntu为例)
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
```
- 付费证书:DigiCert、GeoTrust(适合企业官网/电商)。
2. Nginx配置文件修改
假设你的证书文件是 `yourdomain.crt`,私钥是 `yourdomain.key`:
```nginx
server {
listen 443 ssl;
启用HTTPS默认端口
server_name yourdomain.com;
ssl_certificate /path/to/yourdomain.crt;
证书路径
ssl_certificate_key /path/to/yourdomain.key;
私钥路径
强化安全性(推荐配置)
ssl_protocols TLSv1.2 TLSv1.3;
禁用老旧协议如TLS1.0
ssl_ciphers HIGH:!aNULL:!MD5;
加密套件设置
ssl_prefer_server_ciphers on;
优先使用服务端加密算法
location / {
root /var/www/html;
index index.html;
}
}
HTTP强制跳转HTTPS(重要!)
listen 80;
return 301 https://$host$request_uri;
```
3. 检查并重启Nginx
```bash
sudo nginx -t
测试配置语法
sudo systemctl restart nginx
三、实战中常见问题与解决方案
问题1:浏览器提示“不安全”警告
- 原因1:证书链不完整。
解法:合并中间证书到 `.crt` 文件:
cat yourdomain.crt intermediate.crt > combined.crt
然后在Nginx中引用 `combined.crt`。
- 原因2:系统时间错误。
例子:服务器时间设置为2025年,但证书有效期是2025年,会被判为“过期”。
问题2:性能优化
HTTPS会增加服务器负担,可通过以下方式缓解:
ssl_session_cache shared:SSL:10m;
SSL会话缓存10MB内存
ssl_session_timeout 10m;
SSL会话超时时间10分钟
问题3:混合内容警告
- 现象:网页虽然HTTPS加载,但图片/CSS仍用HTTP链接。
解法:将网页内所有资源URL改为 `https://` ,或使用相对路径。
四、高级技巧与安全加固
1. HSTS头(防降级攻击)
在Nginx中添加:
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
效果:告诉浏览器“未来两年只允许HTTPS访问本域名”。
2. OCSP Stapling加速验证
减少浏览器验证证书的时间:
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 valid=300s;
五、 Checklist
? HTTPS不是可选项——它是现代网站的标配。
? Nginx配置SSL只需三步:上传证书、修改配置、重启服务。
? Let's Encrypt让免费SSL触手可及。
如果你按本文操作后仍有疑问,可能是遇到了特定环境问题——欢迎在评论区留言具体报错信息!
TAG:ssl证书在nginx,ssl证书在哪里看,SSL证书在哪里申请,SSL证书在线生成