文档中心
Nginx涓婼SL璇佷功瀹夎鎸囧崡鎵嬫妸鎵嬫暀浣犳墦閫燞TTPS瀹夊叏绔欑偣
时间 : 2025-09-27 16:26:25浏览量 : 2

关键词:Nginx SSL证书安装、HTTPS配置、Nginx安全优化
一、为什么你的网站需要SSL证书?
想象一下:你在咖啡馆用公共WiFi登录网站,如果网站是HTTP协议,黑客可以像“偷看明信片”一样截取你的密码、银行卡号。而HTTPS(即HTTP+SSL)会把这些信息变成“加密信封”,只有服务器能解密。
典型场景举例:
- 用户登录页面没有HTTPS → 黑客用中间人攻击窃取Cookie,直接冒充用户身份。
- 电商网站支付环节未加密 → 信用卡信息被嗅探,导致财产损失。
二、准备工作:获取SSL证书的3种方式
1. 免费证书(推荐小型站点)
- Let's Encrypt:自动化工具Certbot一键申请,90天有效期(可自动续期)。
```bash
sudo certbot --nginx -d yourdomain.com
```
- 适用场景:个人博客、测试环境。
2. 付费证书(企业级需求)
- DigiCert/Sectigo等品牌,提供OV(组织验证)、EV(扩展验证)证书,地址栏显示公司名称。
- 优势:更高信任度、技术支持、保险赔付。
3. 自签名证书(仅限内部使用)
```bash
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/nginx/ssl/self.key -out /etc/nginx/ssl/self.crt
```
?? 浏览器会提示“不安全”,适合本地开发或内网系统。
三、Nginx安装SSL证书全流程(以Let's Encrypt为例)
步骤1:确认Nginx已安装并开放443端口
检查Nginx是否运行:
```bash
systemctl status nginx
```
防火墙放行HTTPS流量:
sudo ufw allow 443/tcp
```
步骤2:使用Certbot自动配置证书
安装Certbot工具:
sudo apt install certbot python3-certbot-nginx
Ubuntu/Debian
sudo yum install certbot python3-certbot-nginx
CentOS
生成证书并自动修改Nginx配置:
sudo certbot --nginx -d example.com -d www.example.com
? Certbot会自动完成以下操作:
- 生成证书文件(保存在`/etc/letsencrypt/live/example.com/`)
- 修改Nginx配置指向证书路径
- 设置自动续期任务
步骤3:手动配置示例(适用于其他证书)
编辑Nginx站点配置文件(通常位于`/etc/nginx/sites-available/default`):
```nginx
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/fullchain.pem;
证书链文件
ssl_certificate_key /path/to/private.key;
私钥文件
SSL性能优化参数
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers on;
location / {
root /var/www/html;
index index.html;
}
}
HTTP强制跳转HTTPS
listen 80;
return 301 https://$host$request_uri;
重载Nginx生效:
sudo nginx -t
测试配置语法
sudo systemctl reload nginx
四、常见问题排查与优化技巧
? 问题1:浏览器提示“不安全连接”
- 原因A:证书链不完整 → [补全中间证书](https://ssl-config.mozilla.org/) 。
- 原因B:系统时间错误 → `date`命令检查时间是否准确。
? 问题2:HTTPS访问特别慢
- 优化方案A :启用OCSP Stapling减少验证延迟:
```nginx
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 valid=300s;
- 优化方案B: Session复用减少TLS握手:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout? 24h;
五、高级安全加固建议
1???禁用老旧协议:
ssl_protocols TLSv1.2 TLSv1.3;?
?禁用不安全的TLSv1.0/v1.1
2???开启HSTS防止降级攻击:
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
通过以上步骤,你的网站将获得以下安全提升:
??数据加密传输防窃听 ??提升搜索引擎排名 ??避免浏览器“不安全”警告
TAG:nginx 下ssl证书安装,nginx ssl 版本,nginx安装ssl模块,nginx sslv3,nginx ssl_ciphers