Nginx SSL证书折腾记

Reading time ~1 minute

之前服务器https访问的时候,总是喜欢动不动就抽风,浏览器报证书不受信,搞的十分蛋疼,但由于是偶发,又一直没啥时间和心情去研究,所以拖到现在也没有解决。

然后今天又被抽风之后,有点愤怒,于是跑去网上搜了下,找到这么个网站,可以检测服务器的SSL证书状态,并且给出非常详细的相关信息,甚爽,于是赶快研究了一下服务器SSL证书的配置。

首先还是导致之前浏览器报错的证书链的问题,我们一般会有三种证书: RootCA.crt(rCA,被信任的根证书)、IntermediateCA.crt(mCA,某些厂商有多个中间证书)、server.crt(sCA,通过CSR签下来的证书),某些厂商的rCA和mCA是需要用户自己下载的。为了让浏览器能够信任我们的证书,我们需要配置一条完整的证书链,证书链由sCA和mCA构成就好,rCA是浏览器内置,不需要服务器给提供。nginx配置证书链的时候,就是指定一个证书文件,这个文件中含有我们整个证书链的所有证书就好,证书合并的时候,正确的合并方法是把 mCA 合并到 sCA 中。当有多个 mCA 文件时,mCA 从下级到上级(根证书为最上级)依次合并到 sCA 中。在这个过程中,rCA 被视为多余的文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
# Combined Certificates

-----BEGIN CERTIFICATE-----
...... sCA ......
------END CERTIFICATE------

-----BEGIN CERTIFICATE-----
...... mCA (lower) ......
------END CERTIFICATE------

-----BEGIN CERTIFICATE-----
...... mCA (upper) ......
------END CERTIFICATE------

证书链的问题解决后,基本应该就可以正常work了,但是那个检测网站检测之后,还给我指出了其他几个问题,什么SSLv3不安全应该禁用,DH密钥交换的长度应该加大,反正就按照给的提示把方便改的就改掉了,最后,得到SSL相关配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
listen 443 ssl;
listen [::]:443 ipv6only=on ssl;

ssl_certificate /mnt/certs/fenyin.me.chained.crt;
ssl_certificate_key /mnt/certs/fenyin.me.key;

ssl_dhparam /mnt/certs/dhparams.pem;

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;

搞完之后测下来感觉一切正常,于是乎就先这样了~~~


参考文章:

http://www.idongu.com/articles/823

https://weakdh.org/sysadmin.html

挂载网络文件夹后网络故障时文件操作命令卡死

挂载 NFS 或者 Samba 的时候,经常会由于网络故障导致挂载好的链接断掉。此时如果尝试进行 ls、cd、df 等各种命令,只要与此目录沾上边,就会卡住。如果使用了类似 oh-my-zsh 这种配置的,只要在网络目录中,弹出命令提示符前就会直接卡住。这个时候第一反应就是...… Continue reading

路由折腾记 第四弹

Published on September 02, 2017