SSL 工具集 / sslops.cn

Nginx 服务器安装 SSL 证书

您可以通过将 SSL 证书安装到 Nginx 服务器,使 Nginx 服务器支持 HTTPS 安全访问。本文介绍如何在 Nginx 服务器上安装 SSL 证书。

说明:

  • 本文档 Nginx 版本以 nginx/1.18.0 为例。
  • 安装前请确认 443 端口未被占用;如果 443 端口已被使用,请在安装证书时绑定其他端口。

获取证书

Nginx 部署需要用到证书包中的两个文件:

  • domain_com_integrated.crt:证书文件(已合并中间证书)
  • domain_com.key:私钥文件

安装 SSL 证书

  1. 将已获取到的 domain_com_integrated.crt 证书文件、domain_com.key 私钥文件从本地目录拷贝到 Nginx 服务器的 /etc/nginx/ssl 目录下。

说明:

  • 若 /etc/nginx/ssl 目录不存在,可通过 mkdir -p /etc/nginx/ssl 命令创建。
  • 不同安装方式的目录位置可能存在差异,请以实际安装路径为准。
  1. 编辑 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,可以通过以下操作设置:

  1. 在 HTTP 的 server 块中增加 return 301 https://$host$request_uri;,即可将 HTTP 请求重定向为 HTTPS。修改如下:
server {
    listen 80;
    # 把 HTTP 的域名请求转成 HTTPS
    return 301 https://$host$request_uri;
}
  1. 重新启动 Nginx 服务器,即可使用域名访问,实现 HTTP 自动跳转 HTTPS。
相关工具