Nginx 配置 https

证书搞一下

emmmmm……
这个就不写了,网上教程一堆,就搞个简单的,去阿里云ssl证书里申请一个免费的一年限的证书即可。

Nginx 的话,最后弄完下载下来是一个 zip 文件,解压后是一个 .pem 和 .key 文件。

配置文件搞一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
server {
listen 443 ssl;
server_name baidu.com www.baidu.com;

ssl_certificate /etc/nginx/ssl/www.pem;
ssl_certificate_key /etc/nginx/ssl/www.key;

ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

location / {

}
}

如果想配置 http 强跳转到 https

将监听80端口的配置文件更改为

1
2
3
4
5
server {
listen 80;
server_name qingmg.cn www.qingmg.cn;
rewrite ^/(.*) https://$server_name$request_uri? permanent;
}

nginx 启动的时候如果出现告警

告警内容:(在 error.log 中)

1
[warn] the "ssl" directive is deprecated, use the "listen … ssl" directive instead in /etc/nginx/conf.d/www.conf:8

解决方案:

新的 nginx 取消了 ssl on; 这个配置,
所以出现这个告警就是你的 https 配置中出现 ssl on; 这行代码,
解决方法就是删除这一行,将 listen 443; 改为 listen 443 ssl; 即可。