您是否想为客户提供快速且现代化的EC密钥加密,但仍担心与旧版浏览器的兼容性?现在您无需再为此担忧。您可以在Web服务器上并排设置两个证书,并以RSA密钥作为后备方案。在本教程中,您将学习如何在一个域名上同时使用两个分别包含RSA和EC密钥的证书。
Web服务器早已具备此功能;因此,如果您因访客兼容性问题而犹豫是否应该切换到ECC证书,可以同时设置两者。现代浏览器支持使用EC密钥,并且它们可以更快地与服务器通信。无法使用椭圆曲线加密(ECC)的浏览器可以使用经典的RSA证书作为所谓的后备方案。
在Web服务器上操作两个证书
同时操作两个使用不同算法的证书非常简单。您只需将第二个证书添加到Web服务器的配置中,服务器就会自行决定使用哪个证书。
将会有两个证书,每个证书使用不同的密钥算法,其使用情况将由按优先级排序的密码列表决定(当然也取决于连接浏览器的优先级)。包含较短密钥且加密强度高于RSA的ECC证书将优先使用。
证书顺序取决于您在Web服务器上为指定域设置的加密算法的优先级。这些密码会按优先级在首选(和禁用)密码列表中排序,以便服务器先尝试较早的密码,然后再尝试较晚的密码。
从ECC回退到RSA
如果服务器和客户端对使用EC密钥的加密方式存在分歧,则会切换到使用RSA的后续加密方式,浏览器肯定支持RSA加密。这确保了所谓的“回退到”经典RSA证书。因此,双重配置的使用是安全的,您不必担心使用旧浏览器的客户无法访问您的网站。
设置密码首选项
需要为每个Web服务器定义首选密码;为此,我们建议使用moz://aSSL配置生成器或Cipherli.st服务。它们会为您提供安全专家推荐的合适密码列表,您无需自行创建。
如何获得证书副本
在Gworg,您默认会获得一个与CSR中使用的算法相同的证书。如果您想免费获得现有证书的副本(使用不同的算法),请随时联系我们的客户支持。由于RSA和ECC的双重用途,您无需购买两次相同的证书。
阿帕奇
将第二对证书和私钥的位置添加到特定网站的虚拟主机配置中。第二个证书的密钥算法与第一个证书不同;我们假设您将ECC证书添加到现有的RSA证书中。
您只需将第二对密钥添加到配置中即可。它们的使用取决于密码套件中算法的优先级。
SSLCertificateFile /etc/ssl/certs/ssl-rsa.crt SSLCertificateKeyFile /etc/ssl/private/pkey-rsa.pem SSLCertificateFile /etc/ssl/certs/ssl-ecc.pem SSLCertificateKeyFile /etc/ssl/private/pkey-ecc.pem
如果您在配置中启用了SSLCACertificateFile指令,请随意删除或注释掉它。中级CA证书无需单独列出,因为您已将其与域证书本身一起包含在文件中。
从逻辑上讲,使用ECC的加密算法应该位于列表的最前面,并具有更高的优先级。您可以在ssl.conf文件中设置协议和密码列表(默认位于/mods-enabled文件夹中)。示例取自ssl-config.mozilla.org:
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 SSLHonorCipherOrder off SSLSessionTickets off
Nginx
Nginx可以同时使用2016年发布的1.11.0版本之前的RSA和ECC证书。Nginx的配置设置逻辑与Apache相同。您只需将第二个证书添加到配置中,然后由服务器自行决定。
server { listen 443 ssl default_server; server_name domain.com www.domain.com; # RSA certificate ssl_certificate /var/ssl/domain.com/certs/fullchain.rsa.pem; ssl_certificate_key /var/ssl/domain.com/private/privkey.rsa.pem; # ECDSA certificate ssl_certificate /var/ssl/domain.com/certs/fullchain.ecc.pem; ssl_certificate_key /var/ssl/domain.com/private/privkey.ecc.pem; # Other directives }
设置协议和密码列表(取自ssl-config.mozilla.org):
ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off;
对于两个Web服务器,证书会与中间证书一起插入到一个文件中。该文件对应于linux_intermediate.pem文件,您可以在我们发送的电子邮件中以及您的客户管理中找到它。使用该文件,您无需进行任何其他编辑。
验证安装是否正确
您可以使用我们的检查器来验证SSL证书是否已正确安装。有关更多信息,请参阅文章“检查安装是否正确”。
资源和更多信息 NginX混合RSA和ECDSA证书。
获取地址:https://scotthelme.co.uk/hybrid-rsa-and-ecdsa-certificates-with-nginx/ moz://
SSL配置生成器。网址:https://ssl-config.mozilla.org/
Powered by WHMCompleteSolution