Nginx 开启 HTTPS:SSL 证书配置指南
在当今的互联网环境中,为你的网站启用 HTTPS 不再是“可选项”,而是“必选项”。HTTPS 不仅能保障数据传输安全、防止内容被篡改,还能提升用户信任度和搜索引擎排名。本文将为你提供一份清晰、精简的 Nginx 配置 SSL 证书的操作指南,让你能快速为自己的网站部署 HTTPS。
准备工作
在开始配置之前,请确保你已准备好以下内容:
- 一台已安装 Nginx 的服务器:本文所有操作基于 Nginx。
- 一个域名:例如
your_domain.com
,并已解析到你的服务器 IP。 - SSL 证书文件:
- 证书文件(通常是
.pem
或.crt
格式),这是公钥证书。 - 私钥文件(通常是
.key
格式),请务必妥善保管此文件。
- 证书文件(通常是
你可以从 Let’s Encrypt 获取免费证书,或从其他商业证书颁发机构(CA)购买。
操作步骤
第一步:上传证书文件到服务器
为了方便管理,我们建议将证书和私钥文件存放在一个统一的目录中。一个常见的做法是在 Nginx 配置目录下创建一个 ssl
文件夹。
1 | # 创建 SSL 证书存放目录 |
第二步:创建 Nginx 站点配置文件
Nginx 的一个最佳实践是为每个网站创建一个独立的配置文件,并存放在 /etc/nginx/conf.d/
目录下。这样做便于管理,且不会污染主配置文件 nginx.conf
。
我们创建一个新的配置文件,例如 your_domain.com.conf
。
1 | sudo touch /etc/nginx/conf.d/your_domain.com.conf |
现在,使用你喜欢的编辑器(如 vim
或 nano
)打开这个文件,并写入以下内容。配置分为两个核心部分:HTTP 强制跳转 和 HTTPS 服务。
1 | # /etc/nginx/conf.d/your_domain.com.conf |
配置重点解读:
- HTTP to HTTPS 跳转:第一个
server
块监听 80 端口,它的唯一作用就是通过return 301
将所有 HTTP 请求永久重定向到对应的 HTTPS 地址。这是实现全站 HTTPS 的标准做法。 listen 443 ssl http2
:这是 HTTPS 服务的核心指令。443
是 HTTPS 的标准端口,ssl
指令用于启用 SSL/TLS,http2
则启用更高效的 HTTP/2 协议。ssl_certificate
和ssl_certificate_key
:这是两个必须正确配置的指令,分别指向你的证书公钥和私钥文件。- 安全优化:通过
ssl_protocols
和ssl_ciphers
限制只使用安全的协议和加密算法,可以避免你的网站受到已知的漏洞攻击。 - 网站内容配置:根据你的实际用途,选择配置
location /
块。- 静态网站:使用
root
指定网站文件的根目录。 - 反向代理:使用
proxy_pass
将请求转发给在本地或其他机器上运行的后端服务。
- 静态网站:使用
第三步:检查配置并重载 Nginx
在应用新配置之前,务必先检查语法是否有误,这可以避免因配置错误导致 Nginx 服务中断。
1 | # 检查 Nginx 配置文件语法是否正确 |
如果看到如下输出,说明配置无误:
1 | nginx: the configuration file /etc/nginx/nginx.conf syntax is ok |
确认无误后,平滑地重载 Nginx 服务以应用新的配置。
1 | # 平滑重载 Nginx,不会中断现有连接 |
至此,你的网站已经成功启用了 HTTPS!现在访问 http://your_domain.com
,浏览器应该会自动跳转到 https://your_domain.com
,并且地址栏会显示一把安全锁标志。
总结
为 Nginx 配置 SSL 证书的核心流程非常清晰:
- 准备:获取域名和证书文件。
- 上传:将证书和私钥放到服务器指定目录。
- 配置:创建站点配置文件,包含一个HTTP 跳转块和一个HTTPS 服务块。
- 生效:检查并重载 Nginx。
掌握这个流程后,你就可以轻松地为任何网站配置 HTTPS,为你的应用和用户提供一层坚实的安全保障。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 技术博客!