Nginx 配置 SSL 证书 + HTTPS 站点

本文介绍了 Nginx 的 HTTPS 和 SSL 模块配置方法,包括如何安装 SSL 证书、设置 HTTPS 相关参数等内容,有助于提升网站的安全性和用户体验。

http://zou.lu/nginx-https-ssl-module/

http://bbs.taohost.net/thread-199-1-1.html

Nginx配置 SSL 证书主要涉及以下几个步骤: 1. **确认 Nginx 配置文件路径** 在配置之前,可以通过以下命令查看 Nginx 配置文件路径并验证其语法: ``` nginx -t ``` 输出结果中会显示当前配置文件的路径,例如 `/etc/nginx/nginx.conf`[^1]。 2. **创建证书存储目录** 为了方便管理,可以创建一个专门用于存放 SSL 证书的目录。例如: ``` mkdir /etc/nginx/cert ``` 这样可以将 SSL 证书集中存放,便于后续维护。 3. **上传 SSL 证书文件** 将 SSL 证书和私钥文件上传至服务器。通常,SSL 证书文件以 `.crt` 结尾,私钥文件以 `.key` 结尾。例如,将证书文件 `your_domain.crt` 和私钥文件 `your_domain.key` 上传至 `/etc/nginx/cert` 目录。 4. **编辑 Nginx 站点配置文件** 打开站点配置文件(例如 `/etc/nginx/sites-available/your_domain.conf`),并添加 SSL 配置内容: ```nginx server { listen 443 ssl; server_name your_domain.com www.your_domain.com; # SSL证书路径 ssl_certificate /etc/nginx/cert/your_domain.crt; ssl_certificate_key /etc/nginx/cert/your_domain.key; # 安全增强配置 ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256'; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; # 其他网站配置 root /var/www/html; index index.html; } # 强制HTTP跳转HTTPS(可选) server { listen 80; server_name your_domain.com www.your_domain.com; return 301 https://$server_name$request_uri; } ``` 上述配置启用了 HTTPS 并禁用了旧版本的 SSL/TLS 协议以提升安全性[^2]。 5. **检查配置并重启 Nginx** 配置完成后,需要检查 Nginx 配置文件是否正确: ``` sudo nginx -t ``` 如果语法正确,可以通过以下命令重启 Nginx 使配置生效: ``` sudo systemctl restart nginx ``` 6. **验证 SSL 配置** 配置完成后,可以通过浏览器访问网站,查看是否正常加载 HTTPS 页面。此外,也可以使用在线工具(如 [SSL Labs](https://www.ssllabs.com/ssltest/))进行 SSL 配置检查,以确保证书配置正确且安全性达标。 7. **多域名证书配置(可选)** 如果需要支持多个域名,并希望使用不同的 SSL 证书,可以在 Nginx 的 `http` 段中使用 `map` 指令结合正则表达式动态设置证书路径。例如: ```nginx map $ssl_server_name $NixopsCert { default /usr/local/nginx/conf/keys/nixops.me.crt; ~*^(.+\.)*([^\.]+\.[^\.]+)$ /usr/local/nginx/conf/keys/$2.crt; } map $ssl_server_name $NixopsKey { default /usr/local/nginx/conf/keys/nixops.me.key; ~*^(.+\.)*([^\.]+\.[^\.]+)$ /usr/local/nginx/conf/keys/$2.key; } ``` 在 `server` 块中引用这些变量: ```nginx ssl_certificate $NixopsCert; ssl_certificate_key $NixopsKey; ``` 这种方法可以简化多个域名的证书管理[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值