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日