Nginx 服务器开启 SSL

众所周知为了提高网站的安全性,一般会在比较敏感的部分页面采用 https 传输,比如注册、登录、控制台等。像Gmail、网银等全部采用 https 传输。网站安装 SSL 证书最主要的好处是可以保障用户隐私信息安全,帮助用户识别钓鱼网站。且更利于网站 SEO 优化,例如谷歌,百度搜索引擎站在确保用户信息安全的角度,在搜索、展现、排序方面也给予部署了SSL证书网站优待。

Nginx 服务器开启 SSLNginx 服务器开启 SSL

购买 SSL 证书

既然要加密提高网站安全级别,那么选择一款性价比合适的 SSL 在所难免。SSL 证书购买途径有很多,也有一些是免费的,试过一些免费 SSL 证书但觉得续签麻烦,不太稳定,也不安全。国内 CA 机构 CFCA 中国金融认证中心 SSL 产品研发负责人也表示:网站管理人员及 CA 机构都应对免费证书持谨慎态度。因为付费的也不是很贵,就选了比较常用的 Comodo PositiveSSL,在 gogetssl 买比官网便宜不少。
Nginx 服务器开启 SSLNginx 服务器开启 SSL

我们以 gogetssl 家的 Comodo PositiveSSL 证书为例,记录 Nginx 配置安装 ssl 证书的过程,具体原理就不说了。

准备证书

首先需要购买证书,Comodo PositiveSSL,三年只要 9.65 美金。
Nginx 服务器开启 SSLNginx 服务器开启 SSL

购买完成后,邮件会得到几封邮件,其中包含 key 代码、证书压缩包等附件,解压之会得到 4 个文件。AddTrustExternalCARoot.crt、COMODORSAAddTrustCA.crt、COMODORSADomainValidationSecureServerCA.crt、www_91zll_net.crt,这就是我们要用到的证书了。
Nginx 服务器开启 SSLNginx 服务器开启 SSL

串联证书

执行合并命令生成新文件 ssl-bundle.crt

cat www_91zll_net.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ssl-bundle.crt
生成私钥

将刚才gogetssl 发的邮件里的 key 代码,即 —–BEGIN PRIVATE KEY—– 和 —–END PRIVATE KEY—– 之间的代码(包含这两行)复制保存为 91zll_net.key 文件。利用 KEY私钥格式转换工具 来进行转换一下,从PKCS8 Key 转换为 RSA Key。

创建一个证书存放路径

mkdir -p /etc/ssl/private/

将前面生成的 91zll_net.key 和 ssl-bundle.crt 上传服务器,一般放在 /etc/ssl/private/ 目录下。

修改 Nginx 配置

下面是我 nginx 关于 ssl 部分的配置,因为要全局使用 https,故将 80 端口重定向到 https 下。

server {
    listen 80;
    server_name 91zll.ne www.91zll.net
    location / {
    rewrite (.*) https://www.91zll.net$1 permanent;
      }
}
server {
    listen 443 ssl;
    server_name 91zll.net www.91zll.net;
    
    ssl on;
    ssl_certificate /etc/ssl/private/ssl-bundle.crt;
    ssl_certificate_key /etc/ssl/private/91zll_net.key;
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
    ssl_prefer_server_ciphers on;
}

具体参数的含义就不多说了,请自行google。使用前先测试一下。

nginx -t

检测没问题后,重启 nginx

 service nginx restart

原文来自:https://www.u22e.com/233.html

本文地址:https://www.linuxprobe.com/nginx-opens-ssl.html编辑:冯振华,审核员:逄增宝

本文原创地址:https://www.linuxprobe.com/nginx-opens-ssl.html

posted @ 2023-05-29 08:55  linux_pro  阅读(32)  评论(0编辑  收藏  举报