HTTPS就是HTTP over SSL,大白话说就是SSL加密的HTTP。
由于HTTPS属于公共传输,所以至少用到一个非对称加密。
目前常见的算法按从高到低:
ECC
AES+RSA
RSA
DES+RSA
其中类似AES+RSA就是不完全对称加密,只将密钥用RSA加密,而密文用AES这种高效的加密方式。
如此相比传统的全文用RSA加密有更高速等优势,在ECC这类算法出现前是一个不错的中和方案。
ECC出现后,有芯片开发网站将其效率与RSA进行了对比,结果显然ECC更胜一筹:
https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8951-CryptoAuth-RSA-ECC-Comparison-Embedded-Systems-WhitePaper.pdf
ECC的缺点是很多浏览器和客户端并不兼容,相信广泛普及后能够解决这一问题。
ECC的浏览器兼容性:
https://developer.qiniu.com/ssl/manual/3659/ssl-compatibility-test-report
ACME.SH生成ECC加密的Let's Encrypt证书:
https://github.com/Neilpang/acme.sh#10-issue-ecc-certificates
附ECC自签名证书生成方法:(一般用于内网加密通讯或CDN)
openssl ecparam -out privatekey.key -name prime256v1 -genkey
openssl req -new -key privatekey.key -out request.csr -sha256
openssl x509 -req -days 3650 -in /www/ssl.csr -signkey /www/ssl.key -out /www/ssl.crt
然后在Nginx网站配置的server段加入:
listen 443 ssl;
ssl_certificate /www/ssl.crt;
ssl_certificate_key /www/ssl.key;
如果看不懂的话,简单地说就是ECC提升了加密速度,并且更省资源,网页打开更快。
我的内网服务器已经部署ECC证书了,效率同比之前的RSA提升很大,抓取延迟小了很多。
只可惜目前所有网站对外默认的Lets encrypt还没有更换ECC加密,因为要考虑到兼容性问题。
591442386 cPanel似乎还不兼容ECC式的证书,据说ECC是三角函数还是啥的加密方式,反正我朋友用它来做服务器证书以后验证要一分多钟
对了有些老CPU型号指令集没法硬件运算ECC算法,所以他们用软件计算,那就肯定慢了
C 591442386 cPanel似乎还不兼容ECC式的证书,据说ECC是三角函数还是啥的加密方式,反正我朋友用它来做服务器证书以后验证要一分多钟 ...