部署RSA,ECC 双证书


RSA算法,国际标准算法,应用较早,最为普及,一般采用 2048 位的加密长度,但是对服务端性能消耗高,所以加密速度快,效率更高,更安全,抗攻击型更强ECC算法成为了新一代算法趋势主流

而且ECC算法比RSA算法要短不少,一般认为160位密钥的ECC安全性相当于1024位密钥的RSA,256位相当于3072位,所以更加短小安全的ECC密钥成为我们今天各大网站的首选加密方式
但是一些老旧的 浏览器/系统 不支持ECC证书,为了能够兼容它们,我们还得准备一份 RSA证书 本文证书使用 acme.sh 申请,详细内容请阅览
整一个Let’s Encrypt证书
本文主要介绍nginx的部署过程,apache及其他服务器请自行google

申请证书
1
2
3
4
#申请RSA证书
acme.sh --issue -d example.com -w /data/web/example/
#申请ECC证书
acme.sh --issue -d example.com -w /data/web/example/ --keylength ec-256

其中,ECC可选长度有
ec-256 (prime256v1, “ECDSA P-256”)
ec-384 (secp384r1, “ECDSA P-384”)
命令执行完毕后,你会在acme.sh下看见example.com和example.com_ecc文件夹

部署证书

手动进入到example.com和example.com_ecc文件夹,将各自的证书文件复制到服务器调用的证书目录下,或者直接复制过去

1
2
cp -r ~/.acme.sh/example.com /data/cert/example.com
cp -r ~/.acme.sh/example.com_ecc /data/cert/example.com_ecc

接着,在服务器的配置文件里加上这一段

1
2
3
4
5
6
7
8
#Let's Encrypt的 ECC 证书
ssl_certificate /data/cert/example.com_ecc/fullchain.cer;
ssl_certificate_key /data/cert/example.com_ecc/example.com.key;
#Let's Encrypt的 RSA 证书
ssl_certificate /data/cert/example.com/fullchain.cer;
ssl_certificate_key /data/cert/example.com/example.com.key;
#优先采取服务器算法
ssl_prefer_server_ciphers on;

修改ssl_ciphers,我使用了这么一段

1
ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES";

如果有需要也可以参考Mozilla提供的

1
ssl_ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

接着重启服务器,使用ssllabs检查,你将会发现出现了两张证书,那么这就代表你部署成功了