您可以通过将 SSL 证书安装到 Nginx 服务器,使 Nginx 服务器支持 HTTPS 安全访问。本文介绍如何在 Nginx 服务器上安装 SSL 证书。
说明:
- 本文档 Nginx 版本以
nginx/1.18.0为例。- 安装前请确认 443 端口未被占用;如果 443 端口已被使用,请在安装证书时绑定其他端口。
获取证书
Nginx 部署需要用到证书包中的两个文件:
domain_com_integrated.crt:证书文件(已合并中间证书)domain_com.key:私钥文件
安装 SSL 证书
- 将已获取到的
domain_com_integrated.crt证书文件、domain_com.key私钥文件从本地目录拷贝到 Nginx 服务器的/etc/nginx/ssl目录下。
说明:
- 若
/etc/nginx/ssl目录不存在,可通过mkdir -p /etc/nginx/ssl命令创建。- 不同安装方式的目录位置可能存在差异,请以实际安装路径为准。
- 编辑 Nginx 配置目录下的
nginx.conf文件,修改内容如下:
server {
listen 443 ssl;
server_name example.com; # 填写自己的域名,多个域名用空格隔开
ssl_certificate /etc/nginx/ssl/domain_com_integrated.crt; # 证书文件的相对路径或绝对路径
ssl_certificate_key /etc/nginx/ssl/domain_com.key; # 私钥文件的相对路径或绝对路径
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
说明: Nginx 1.15.0 之前的版本常用
listen 443;加ssl on;的写法;ssl on;自 1.15.0 起已废弃,推荐统一使用listen 443 ssl;。
修改后保存配置文件并执行以下命令:
nginx -t # 验证配置文件是否正确
nginx -s reload # 重载 Nginx
HTTP 自动跳转 HTTPS 的安全配置(可选)
如果您需要将 HTTP 请求自动重定向到 HTTPS,可以通过以下操作设置:
- 在 HTTP 的 server 块中增加
return 301 https://$host$request_uri;,即可将 HTTP 请求重定向为 HTTPS。修改如下:
server {
listen 80;
# 把 HTTP 的域名请求转成 HTTPS
return 301 https://$host$request_uri;
}
- 重新启动 Nginx 服务器,即可使用域名访问,实现 HTTP 自动跳转 HTTPS。