HTTPS部署

92 阅读2分钟

操作场景

本文档指导您如何在 Nginx 服务器中安装 SSL 证书。

说明:
本文档以证书名称 zhangenyu.com 为例。
Nginx 版本以 nginx/1.20.0 为例。
当前服务器的操作系统为 CentOS 7.9,由于操作系统的版本不同,详细操作步骤略有区别。
安装 SSL 证书前,请您在 Nginx 服务器上开启 “443” 端口,避免证书安装后无法启用 HTTPS。

操作步骤

证书安装

请在 SSL 证书管理控制台 中选择您需要安装的证书并单击下载。 在弹出的 “证书下载” 窗口中,服务器类型选择 Nginx,单击下载并解压缩 zhangenyu.com 证书文件包到本地目录。 解压缩后,可获得相关类型的证书文件。其中包含 zhangenyu.com_nginx 文件夹: 文件夹名称:zhangenyu.com_nginx 文件夹内容: zhangenyu.com_bundle.crt 证书文件 zhangenyu.com_bundle.pem 证书文件(可忽略该文件) zhangenyu.com.key 私钥文件 zhangenyu.com.csr CSR 文件

说明:
CSR 文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件。

证书文件传输

将已获取到的 zhangenyu.com_bundle.crt 证书文件和 zhangenyu.com.key 私钥文件从本地目录拷贝到 Nginx 服务器的 /www/server/nginx 目录(此处请根据实际情况操作)下。

首页Nginx修改配置

server {
   listen   443 ssl;
  ssl_certificate /www/server/nginx/zzysite/zhangenyu.com_bundle.crt;
  ssl_certificate_key /www/server/nginx/zzysite/zhangenyu.com.key;
  ssl_session_timeout 5m;
    #请按照以下协议配置
    ssl_protocols TLSv1.2 TLSv1.3; 
    #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
    ssl_prefer_server_ciphers on;
   server_name www.zhangenyu.com;
   location / {
         uwsgi_pass   0.0.0.0:9005;
         include uwsgi_params;
     }
   location /static{
       alias  这里填自己的静态文件位置
   }
}
重启Nginx访问www.zhangenyu.com就可以了

HTTP 自动跳转 HTTPS 的安全配置(可选)

如果您需要将 HTTP 请求自动重定向到 HTTPS。您可以通过以下操作设置:

根据实际需求,选择以下配置方式:
在页面中添加 JS 脚本。
在后端程序中添加重定向。
通过 Web 服务器实现跳转。

Nginx 支持 rewrite 功能。若您在编译时没有去掉 pcre,您可在 HTTP 的 server 中增加 return 301 https://hosthostrequest_uri;,即可将默认80端口的请求重定向为 HTTPS。修改如下内容:

server {
   listen   80;
   server_name www.zhangenyu.com;
   #把http的域名请求转成https
   return 301 https://$host$request_uri;
}

若修改完成,重启 Nginx。即可使用 www.zhangenyu.com 进行访问。