文档中心
Nginx閰嶇疆SSL璇佷功鐧诲綍鍏ㄦ敾鐣ヤ粠闆跺埌涓€鐨勫疄鎴樻寚鍗?txt
时间 : 2025-09-27 16:27:49浏览量 : 3

在今天的互联网环境中,数据安全至关重要。SSL证书不仅能加密用户与服务器之间的通信,还能提升网站的可信度(比如浏览器地址栏的"小锁"图标)。本文将以Nginx为例,手把手教你如何配置SSL证书实现HTTPS安全登录,并穿插实际案例和常见问题排查技巧。
一、为什么需要SSL证书?先看两个血泪案例
案例1:某电商平台明文传输密码
2025年某平台被曝出用户登录时密码以明文传输,黑客通过公共WiFi轻松截获数万用户凭证。如果启用SSL加密,即使数据被截获也只是一堆乱码。
案例2:微信小程序强制HTTPS
微信小程序要求所有网络请求必须使用HTTPS,否则无法上架。这是因为移动端更容易遭受中间人攻击。
二、准备工作:获取SSL证书的3种方式
1. 商业证书(适合企业)
如DigiCert、GeoTrust等,价格每年几百到上万元不等,支持OV/EV验证(地址栏显示公司名称)。
2. Let's Encrypt免费证书(推荐个人使用)
通过Certbot工具自动申请续期:
```bash
sudo certbot --nginx -d example.com
```
3. 自签名证书(仅测试环境用)
生成命令:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/selfsigned.key \
-out /etc/ssl/certs/selfsigned.crt
*注:浏览器会提示不安全,需手动添加例外*
三、Nginx配置六步走(附详细代码)
步骤1:上传证书文件
将获得的`example.com.crt`和`example.com.key`上传到服务器,建议路径:
/etc/ssl/certs/
/etc/ssl/private/
步骤2:修改Nginx配置文件
```nginx
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/certs/example.com.crt;
ssl_certificate_key /etc/ssl/private/example.com.key;
强化安全配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
location /login {
proxy_pass http://localhost:8080;
指向实际登录服务
proxy_set_header Host $host;
}
}
步骤3:HTTP强制跳转HTTPS
listen 80;
return 301 https://$host$request_uri;
步骤4:测试配置并重载
sudo nginx -t
测试语法
sudo systemctl reload nginx
步骤5:验证证书状态
访问[SSL Labs测试](https://www.ssllabs.com/ssltest/)查看评分,理想情况应达到A+
步骤6:登录表单改造示例
前端需将form action改为HTTPS:
```html