网站和服务器部署ECC/RSA双加密证书的基本流程

目前大多数网站使用的都是基于RSA 非对称加密算法签发的证书,而在部署加密协议后服务器开销亦会增加。

对大型网站而言如果有能够降低服务器开销的方法那自然也得用上,所以现在很多网站也开始使用ECC 证书。

基于ECC算法签发证书相对RSA证书占用更低的服务器开销,不过在兼容性方面RSA 证书则更优于ECC 证书。

于是现在很多大型网站例如谷歌搜索、天猫等开始使用ECC / RSA 双加密证书来确保兼容性的同时降低开销。

ECC证书的兼容性如何?

按现有系统的采用份额来看ECC证书只影响 Windows XP 系统,该系统既不支持SHA256也不支持ECC算法。

同时如果仍然在使用Android 4.0及以下版本亦不支持ECC证书,因此采用 ECC/RSA双证书可保证兼容需求。

但请注意:对于 Windows XP SP3 以下系统仍然不支持 SHA256 算法,所以即便是采用双证书也不能兼容。

题外话:目前国内多家主流的CDN提供商都还没有支持ECC/RSA 双加密证书,所以用CDN的话那就再等等

如何申请ECC加密证书:

目前主流证书颁发机构都已经支持签发ECC证书,同时对于单域名免费证书来说我们仍然可以申请ECC 证书。

免费证书里Lets Encrypt及TrustAsia提供的免费证书均支持ECC证书,用户也可通过合作平台申请ECC 证书。

蓝点网此前已发布通过七牛云存储申请免费证书的详细流程,用户可在申请时选择ECC算法来获取ECC 证书。

网站和服务器部署ECC/RSA双加密证书的基本流程

申请下来的ECC证书截图如下:

在证书的详细信息里面可以看到签名算法是SHA256ECDSA,而目前主流的 RSA 证书签名算法为 SHA256。

网站和服务器部署ECC/RSA双加密证书的基本流程

在Nginx上部署ECC/RSA双加密证书:

为解决兼容问题Nginx已经在 v1.11.x 及以上版本支持双加密证书,因此我们只需要修改配置文件增加即可。

### 为方便查看、以下配置参数中与本文无关的内容已经移除
server { listen 443 ssl http2; #listen [::]:443 ssl http2; server_name www.cncros.com cncros.com; index index.html index.htm index.php default.html default.htm default.php; ssl on;
#增加ECC证书和私钥的完整路径	ssl_certificate /usr/local/nginx/conf/vhost/crt/www.cncros.com.ecdsa.crt; ssl_certificate_key /usr/local/nginx/conf/vhost/crt/www.cncros.com.ecdsa.key;
#这是原本使用的RSA证书和私钥完整路径 ssl_certificate /usr/local/nginx/conf/vhost/crt/www.cncros.com.rsa.crt; ssl_certificate_key /usr/local/nginx/conf/vhost/crt/www.cncros.com.rsa.key;
#开启SSL Ciphers ssl_prefer_server_ciphers on;
#配置SSL Ciphers加密算法参数 ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5"; }

将网站的配置文件修改完成后保存并上传服务器, 然后重启 Nginx 如果没有报错的话那就已经顺利部署啦。

在浏览器和检测工具中测试看看:

谷歌浏览器开发者模式的安全控制台里我们可以看到部署的情况:使用ECDHE_RSA P-256强密钥交换协议。

网站和服务器部署ECC/RSA双加密证书的基本流程

使用MySSL在线检测HTTPS状态也可以看到加密算法为ECDSA 256位,除ECC证书外也可以检测到RSA证书。

网站和服务器部署ECC/RSA双加密证书的基本流程

本文来源 蓝点网 原创,由 山外的鸭子哥 整理编辑,其版权均为 蓝点网 原创 所有,文章内容系作者个人观点,不代表 蓝点网 对观点赞同或支持。如需转载,请注明文章来源。
2
哇哦恭喜您已成功屏蔽了蓝点网的小广告

发表评论