一、操作场景本文档指导您如何在 Nginx 服务器中安装 SSL 证书。
前提条件已准备远程登录工具,例如 PuTTY 或者 Xshell(建议从官方网站获取最新版本)。或有其他远程登陆工具也可。
已在当前服务器中安装配置含有 http_ssl_module 模块的 Nginx 服务。
安装 SSL 证书前需准备的数据如下:(需要有网站服务器登陆权限)
二、操作步骤1.下载获取证书证书下载类型选择 Nginx,保存证书文件包到本地目录。 解压缩后,可获得相关类型的证书文件。
test.com_cert_chain.pem 证书文件(含证书链)
test.com_key.key 私钥文件
2.部署证书① 使用 Xshell等远程工具登录服务器,上传证书相关文件到服务器,保存至相关目录。
② 编辑 Nginx 根目录下的 nginx.conf 文件。修改内容如下:
说明:如找不到以下内容,可执行命令 nginx -t ,找到nginx的配置文件路径。如下图示例:
③ 通过执行 vim /etc/nginx/nginx.conf 命令行编辑该文件。
由于版本问题,配置文件可能存在不同的写法。例如:Nginx 版本为 nginx/1.15.0 以上请使用 listen 443 ssl 代替 listen 443 和 ssl on。
server { #SSL 默认访问端口号为 443 listen 443 ssl; #请填写绑定证书的域名 server_name test.com; #请填写证书文件的相对路径或绝对路径 ssl_certificate test.com_cert_chain.pem; #请填写私钥文件的相对路径或绝对路径 ssl_certificate_key test.com_key.key; ssl_session_timeout 5m; #请按照以下协议配置 ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 #例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。 root html; index index.html index.htm; } }④ 通过执行以下命令验证配置文件问题。
nginx -t若存在,请您重新配置或者根据提示修改存在问题。
⑤ 通过执行以下命令重载 Nginx。
nginx -s reload⑥ 重载成功,即可使用 https://yourdomain 进行访问(以实际网站地址访问)
如果浏览器地址栏显示安全标识,则说明证书安装成功。如下图所示:
附:HTTP 自动跳转 HTTPS 的安全配置(可选)
如果您需要将 HTTP 请求自动重定向到 HTTPS,您可以通过以下操作设置:
① 根据实际需求,选择以下配置方式:
· 在页面中添加 JS 脚本。
· 在后端程序中添加重定向。
· 通过 Web 服务器实现跳转。
Nginx 支持 rewrite 功能。若您在编译时没有去掉 pcre,您可在 HTTP 的 server 中增加
return 301 https://$host$request_uri; ,即可将默认80端口的请求重定向为 HTTPS。
修改如下内容:
说明:未添加注释的配置语句,您按照下述配置即可。
由于版本问题,配置文件可能存在不同的写法。例如:Nginx 版本为 nginx/1.15.0 以上请使用 listen 443 ssl 代替 listen 443 和 ssl on。
server { #SSL 默认访问端口号为 443 listen 443 ssl; #请填写绑定证书的域名 server_name test.com; #请填写证书文件的相对路径或绝对路径 ssl_certificate test.com_cert_chain.pem; #请填写私钥文件的相对路径或绝对路径 ssl_certificate_key test.com_key.key; ssl_session_timeout 5m; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4 #请按照以下协议配置 ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; location / { #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 #例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。 root html; index index.html index.htm; } } server { listen 80; #请填写绑定证书的域名 server_name test.com; #把http的域名请求转成https return 301 https://$host$request_uri; }② 通过执行以下命令验证配置文件问题。
nginx -t若存在,请您重新配置或者根据提示修改存在问题。
③ 通过执行以下命令重载 Nginx。
ginx -s reload④ 重载成功,即可使用 https://yourdomain进行访问(以实际网站地址访问)
如果浏览器地址栏显示安全标识,则说明证书安装成功。如下图所示:
