同时使用带有RSA和ECDSA密钥的证书

您是否想为客户提供快速且现代化的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/

« 返回

分类目录

最新文章

2025-07-31 20:03:00
2025-07-31 20:01:00
2025-07-31 19:59:00

最热文章

文章搜索

Powered by WHMCompleteSolution