文档中心
NginxHTTPS璇佷功閰嶇疆鍏ㄦ敾鐣ヤ粠鐢宠鍒伴儴缃茬殑瀹炴垬璇﹁В
时间 : 2025-09-27 16:26:01浏览量 : 1

在当今互联网环境中,HTTPS已成为网站安全的标配。作为一款高性能的Web服务器,Nginx因其轻量、稳定和灵活的配置广受青睐。本文将用大白话带你一步步搞定Nginx的HTTPS证书配置,涵盖证书申请、安装、优化及常见问题排查,并辅以实际案例说明。
一、为什么需要HTTPS证书?
简单来说,HTTPS就像给网站数据加了个“保险箱”。当用户访问你的网站时,所有传输的信息(比如密码、银行卡号)都会被加密,防止被中间人窃取或篡改。而HTTPS证书就是证明“这个保险箱是正规厂家出品”的凭证。
例子:
假设你开了一家网店(网站),顾客(用户)下单时需要填写地址和电话。如果不用HTTPS,这些信息就像写在明信片上邮寄,谁都能偷看;用了HTTPS后,信息会被锁进密码箱(加密),只有你和顾客有钥匙(密钥)。
二、HTTPS证书的类型与选择
1. 免费证书(Let's Encrypt)
- 适合个人博客、小型网站。
- 有效期90天,需定期续签。
*案例*:个人开发者小张用Let's Encrypt为自己的博客启用HTTPS,零成本实现安全访问。
2. 付费证书(DigiCert/Symantec等)
- 提供更长的有效期(1-2年)和专业技术支持。
- 适合企业级应用或电商平台。
*案例*:某电商平台使用OV(组织验证)证书,地址栏显示公司名称增强用户信任。
三、Nginx配置HTTS证书实战步骤
步骤1:获取证书文件
以Let's Encrypt为例(免费且自动化):
```bash
安装Certbot工具
sudo apt install certbot python3-certbot-nginx
一键申请并安装证书(替换yourdomain.com)
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
```
执行后会自动生成两个文件:
- `cert.pem`:公钥证书
- `privkey.pem`:私钥
步骤2:修改Nginx配置文件
打开站点配置文件(通常位于`/etc/nginx/sites-available/yourdomain.conf`),添加以下内容:
```nginx
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
强制HTTP跳转到HTTPS
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
}
步骤3:测试并重载配置
sudo nginx -t
检查语法是否正确
sudo systemctl reload nginx
重启生效
四、高级优化与安全加固
1. 启用HTTP/2
在Nginx配置中添加`http2`参数提升性能:
```nginx
listen 443 ssl http2;
```
2. 禁用老旧协议
关闭不安全的TLSv1.0/1.1:
ssl_protocols TLSv1.2 TLSv1.3;
3. OCSP Stapling加速
减少浏览器验证证书的时间:
ssl_stapling on;
ssl_stapling_verify on;
*效果对比*:某新闻网站启用HTTP/2后,页面加载速度提升30%,同时TLS优化降低了服务器CPU占用。
五、常见问题与排查技巧
- 问题1:浏览器提示“不安全”
*原因*:证书链不完整。解决方案:确保使用`fullchain.pem`而非单独的`cert.pem`。
- 问题2:Nginx报错"SSL handshake failed"
*原因*:私钥与证书不匹配。用命令检查一致性:
```bash
openssl x509 -noout -modulus -in cert.pem | openssl md5
openssl rsa -noout -modulus -in privkey.pem | openssl md5
```
两次输出的MD5值必须相同!
六、
通过本文的指导,即使是新手也能轻松为Nginx配置HTTPS证书。关键记住三点:
1. 选对证书类型——个人用免费,企业用付费。
2. 严格遵循配置语法——一个标点错误可能导致服务瘫痪。
3. 定期维护更新——90天续签一次Let's Encrypt证书。
现在就去给你的网站加上“安全锁”,让用户放心访问吧!
TAG:nginx https证书,nginx cer证书,nginx证书申请,nginx ssl证书