【双份的快乐】Nginx配置RSA+ECC双证书(Certificate Transparency)

RSA+ECC双证书的好处都有啥?
一个是RSA证书,一个是ECC证书,这双种证书加在一起,得到的是双倍的快乐……

前提条件
Nginx 1.11.0+
OpenSSL 1.0.2 +
证书
当前使用的是Let’s Encrypt 的通配符。
编译Nginx
由于当前我使用的Nginx没有nginx-ct-master因此要添加该模块。

wget -O nginx-ct.zip https://github.com/grahamedgecombe/nginx-ct/archive/master.zip
tar zxf nginx-1.9.6.tar.gz
unzip nginx-ct.zip

编译时在原有的参数上追加--add-module=../nginx-ct-master

./configure --with-http_v2_module --with-http_ssl_module --add-module=../nginx-ct-master

获取 SCT

#安装 golang
yum install golang -y  // CentOS、RHEL
apt-get install golang -y // Ubuntu、Debian

wget https://github.com/grahamedgecombe/ct-submit/archive/v1.1.2.zip
unzip v1.1.2.zip
cd ct-submit-1.1.2
go build 
./ct-submit-1.1.2 ct.googleapis.com/rocketeer <ecc.crt >rocketeer-1.sct
./ct-submit-1.1.2 ct.googleapis.com/icarus <ecc.crt >icarus-1.sct
./ct-submit-1.1.2 ct1.digicert-ct.com/log <rsa.crt >digicert-2.sct
./ct-submit-1.1.2 ct.googleapis.com/pilot <rsa.crt >pilot-2.sct

刚开始.cre证书没有中间证书而报证书不可信,需要域名证书.crt + 根证书(root_bundle).crt保存在一起。

配置

ssl_ct on; #开启 nginx-ct
ssl_ct_static_scts /path/to/scts/; #这里填写 sct 文件的目录路径,而不是文件路径。

然而会报nginx: [emerg] there must be exactly one "ssl_ct_static_scts" directive for each "ssl_certificate" directive的错误(双证书)。
其实是,一个证书(ssl_certificate)要对应一个 scts目录(ssl_ct_static_scts)。

ssl_certificate /etc/ssl/www.cyzwb.com/ecc.crt;
ssl_certificate_key /etc/ssl/www.cyzwb.com/ecc.key;
ssl_ct_static_scts /etc/ssl/www.cyzwb.com/sct-1/;
ssl_certificate /etc/ssl/www.cyzwb.com/rsa.crt;
ssl_certificate_key /etc/ssl/www.cyzwb.com/rsa.key;
ssl_ct_static_scts /etc/ssl/www.cyzwb.com/sct-2/;

保存重启。
在依葫芦画瓢一番折腾后经过myssl测试出现了ECC+RSA双证书了,但是不知道为什么另外一个同服务器的域名就测试失败了,同时证书貌似也变成刚签发的那个了(通配符)。
画外音
我刚开始的密钥曲线设置P-521,哪知道Let’s Encrypt不支持。 { "type": "urn:ietf:params:acme:error:malformed", "detail": "Error finalizing order :: invalid public key in CSR: ECDSA curve P-521 not allowed", "status": 400 }
由于我还不太会玩且本博客使用了CDN所以貌似目前不会在博客(主要站点)上使用。

参考:
Nginx 配置 ECC RSA 双证书:https://maoxian.de/2016/08/1436.html
为 SSL 站点启用 Certificate Transparency 功能:https://typcn.com/legacy/blog/posts/enable-certificate-transparency-for-nginx.html
Nginx 开启 Certificate Transparency 保障证书安全:https://www.mf8.biz/nginx-certificate-transparency/
CT Log:https://www.certificate-transparency.org/known-logs
这就是双份的快乐吗?

超越自我吧

2019年01月05日

发布者

ChiuYut

咦?我是谁?这是什么地方? Ya ha!我是ChiuYut!这里是我的小破站!