你我信                

最简单高效的Nginx配置SSL证书

如果您的nginx是编译安装的,请在编译安装时启用SSL模块 --with-http_ssl_module 

怎么看nginx是否启用了ssl模块? 进入nginx安装目录/sbin,执行 nginx -V 查看。

#1、 获取证书

证书签发之后,可以在「你我信控制台」-- 「我的证书」--「SSL证书」-- 「查看详情」 -- 「证书下载」页面, 「一键打包下载」。

下载得到一个压缩包,解压它,里面有个nginx文件夹,其中的 .crt.key 文件就是对应证书和私钥文件。

上传.crt.key文件到服务器任何地方,但是不要放在网站的目录下。

#2、修改nginx对应站点的配置文件
假设您应该已经建立好了http://站点,网站可以通过http://访问。

2.1 复制nginx http://配置代码片段。像下面这样是一个非常简单的演示片段(您的http配置可能会更复杂,不管多复杂,先复制完整),粘贴到 与原来的nginx配置代码下面,与原来的nginx配置代码平级。

server {
        listen       80;
        server_name  demo.niwoxin.com;
        location / {
            root   /www/wwwroot/demo.niwoxin.com;
            index  index.html index.htm;
        }
}

2.2 修改代码片段。“删1加6”

比如我刚刚把证书放在 /etc/ssl/

我的证书路径是 /etc/ssl/demo_niwoxin_com.crt

我的私钥路径是 /etc/ssl/demo_niwoxin_com.key

server {
        listen       80;
        server_name  demo.niwoxin.com;
        #增加下面1行 让http跳转到https
        return 301 https://$server_name$request_uri;
        #增加上面1行
        location / {
            root   /www/wwwroot/demo.niwoxin.com;
            index  index.html index.htm;
        }
}
#上面是原来HTTP的配置
#下面是HTTPS的配置
server {
        #删除下面1行
        #listen       80;       
        #增加了下面5行
        listen 443 ssl http2;  #监听和声明
        ssl_certificate /etc/ssl/demo_niwoxin_com.crt;   #证书文件路径
        ssl_certificate_key /etc/ssl/demo_niwoxin_com.key;  #私钥文件路径
        ssl_protocols TLSv1.2 TLSv1.3; #启用的ssl协议版本
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;  #ssl加密套件
        #增加了上面5行
        server_name  demo.niwoxin.com;
        location / {
            root   /www/wwwroot/demo.niwoxin.com;
            index  index.html index.htm;
        }
}
#3 测试nginx配置文件

测试配置文件,确保没有错误。

nginx -t
#4 重载nginx配置文件

执行命令,重载nginx配置文件,让https配置生效

nginx -s reload
#5 配置完成

如果没有其他问题,网站可以通过https访问了。