文档中心
SSL璇佷功鍦∟ginx涓殑閰嶇疆浣嶇疆鍙婅缁嗘搷浣滄寚鍗?txt
时间 : 2025-09-27 16:45:51浏览量 : 2
什么是SSL证书?

SSL证书就像网站的"身份证"和"保险箱",它有两个主要作用:一是证明网站的真实身份(防止假冒网站),二是加密传输的数据(防止被窃听)。当你在浏览器地址栏看到小锁图标时,就表示该网站使用了SSL证书。
举个例子:你去银行网站转账,如果没有SSL证书,黑客可能在中间偷看你的账号密码;有了SSL证书后,即使数据被截获,黑客看到的也只是乱码。
Nginx中配置SSL证书的关键位置
在Nginx中,SSL证书主要配置在两个地方:
1. 主配置文件:通常是`/etc/nginx/nginx.conf`
2. 站点配置文件:通常在`/etc/nginx/sites-available/`目录下
实际操作中,我们一般在站点配置文件中添加SSL相关配置。比如你的网站配置文件是`/etc/nginx/sites-available/example.com`。
详细配置步骤
第一步:准备SSL证书文件
通常你会从证书颁发机构(CA)获得三个文件:
- 域名证书(如:`example.com.crt`)
- 中间证书(如:`intermediate.crt`)
- 私钥文件(如:`example.com.key`)
最佳实践:建议将这两个crt文件合并:
```bash
cat example.com.crt intermediate.crt > ssl-bundle.crt
```
这样能避免中间证书缺失导致的某些浏览器警告。
第二步:修改Nginx配置文件
找到你的网站配置文件(例如`/etc/nginx/sites-available/example.com`),在server块中添加或修改以下内容:
```nginx
server {
listen 443 ssl;
监听443端口并启用SSL
server_name example.com www.example.com;
SSL证书路径配置
ssl_certificate /path/to/your/ssl-bundle.crt;
ssl_certificate_key /path/to/your/example.com.key;
SSL协议优化配置
ssl_protocols TLSv1.2 TLSv1.3;
禁用不安全的旧协议
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384...';
HSTS头(增强安全性)
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
...其他配置...
}
第三步:强制HTTPS跳转(重要)
为了防止用户通过HTTP访问,我们应该添加301重定向:
listen 80;
return 301 https://$host$request_uri;
永久重定向到HTTPS
第四步:测试并重启Nginx
执行以下命令检查配置是否正确:
sudo nginx -t
如果没有报错,重启Nginx使配置生效:
sudo systemctl restart nginx
SSL高级优化技巧
1. OCSP Stapling加速验证:
```nginx
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 valid=300s;
resolver_timeout 5s;
```
2. 会话复用减少握手开销:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
3. DH参数增强安全性:
```bash
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
然后在Nginx中添加:
ssl_dhparam /etc/ssl/certs/dhparam.pem;
SSL常见问题排查
1. 浏览器提示"不安全连接"
- √检查证书链是否完整(是否合并了中间证书)
- √检查服务器时间是否正确(时间不对会导致证书无效)
2. 性能问题
- √启用TLS1.3(速度比TLS1.2快很多)
- √考虑使用ECC椭圆曲线证书(比RSA更高效)
3. 混合内容警告
- √确保网页中所有资源(图片/js/css)都使用HTTPS加载
4. 测试工具推荐
curl -Iv https://example.com
查看握手详情
openssl s_client -connect example.com:443 -servername example.com | openssl x509 -noout -dates
检查有效期
或者使用在线工具测试:
https://www.ssllabs.com/
SSL维护最佳实践
1. 设置到期提醒
大部分免费监控工具都能监控SSL到期时间。也可以设置简单的cron任务:
```bash
echo | openssl s_client -connect example.com:443 | openssl x509 -noout -dates
2.自动续期(推荐Let's Encrypt)
Certbot可以实现90天自动续期:
sudo certbot renew --dry-run
3.密钥轮换策略
建议每6个月更换一次私钥,但不需要每次都换新证书记得保留旧密钥30天以防回滚需要。
4.多域名管理技巧
如果有多个子域名,可以考虑通配符证书记得SAN扩展支持多个备用名称。
通过以上步骤,你的Nginx服务器就能安全高效地提供HTTPS服务了。记得定期检查日志(`tail /var/logs/httpd.log`)和更新软件包(`yum update nginx`)保持系统安全。
TAG:ssl证书加在nginx哪里,https的ssl证书,nginx更换ssl证书,nginx安装ssl证书,ssl证书 nginx