前文
HTTPS 设置注定是要付出代价的,第一次加载注定是要比普通 HTTP 慢的,就算我上了 http/2 也是无济于事的。所以这里我就有必要缩短加密位数了,在搜索后,发现,采用 256 bits 的 ECDSA 比 2048 bits 的 RSA 的加密不仅快反而更安全。
所以再我搜索了以后,发现我现在使用的 Comodo PositiveSSL 就支持 ECC 证书的申请,并应用 ECDSA。
介绍
椭圆曲线密码学(Elliptic curve cryptography,缩写为ECC),一种建立公开金钥加密的算法,基于椭圆曲线数学。椭圆曲线在密码学中的使用是在1985年由Neal Koblitz和Victor Miller分别独立提出的。
ECC的主要优势是在某些情况下它比其他的方法使用更小的密钥——比如RSA加密算法——提供相当的或更高等级的安全。ECC的另一个优势是可以定义群之间的双线性映射,基于Weil对或是Tate对;双线性映射已经在密码学中发现了大量的应用,例如基于身份的加密。不过一个缺点是加密和解密操作的实现比其他机制花费的时间长。 ——《椭圆曲线密码学 – 维基百科,自由的百科全书》
优缺点
优点: 证书可以更短,解析证书也可以更加快更安全
缺点:较旧的系统和浏览器均不支持
教程
一、生成 key
openssl ecparam -genkey -name secp384r1 -out vobe-io-ecc.key
-name
参数 prime256v1
或者secp384r1
。 256bit 其实安全性和速度都足够了,但是 slllabs 的评测中 OCSP 会报错,而 384 bit 不会,所以我这里选择 384。
二、生成 CSR
openssl req -new -sha384 -key vobe-io-ecc.key -out vobe-io-ecc.csr
在这里我们只需要 sha384
即可,太低会不安全,太高反而会变慢,所以这里我选择和私钥同样位数的 384 bits。
这里之后会提问你很多问题,可以搜索一下 csr 的填写教程。
三、傻瓜
一键命令:
openssl ecparam -out 你的域名.ecc.pkey -name secp384r1 -genkey && openssl req -new -key 你的域名.ecc.pkey -sha384 -nodes -out 你的域名.ecc.csr -subj “/C=CN/ST=省份/L=城市/O=组织/OU=组织单位/部门/分支/CN=你的域名”
将中文部分修改补齐即可,默认生成 384 bit 的 key 和 csr 。
在线生成:
https://www.chinassl.net/ssltools/generator-csr.html
四、提交证书,等待 crt 文件
然后向你的 SSL 分销商提供你的 csr 文件信息,就会自动签 ECC 证书下来了。
五、替换旧文件
将你的新 key 和 crt 文件上传覆盖旧的