[教程] 为网站同时部署ECDSA和RSA证书兼顾兼容性和减少TLS握手开销提升访问速度
目前业界主流使用的 HTTPS/TLS 数字证书还是基于 RSA 算法的,在 Cloudflare 推动下越来越多的网站开始使用基于 ECDSA 算法的数字证书,例如托管在 Cloudflare 上的网站就同时使用两种证书来确保兼容性。
ECDSA 证书的优势在于提供同等安全强度的情况下比 RSA 数字证书的性能更好,这有助于减少浏览器与服务器之间的 TLS 握手开销和提升访问速度,但 ECDSA 的劣势在于不支持部分老旧的操作系统和浏览器,所以 Cloudflare 使用双证书且优先使用 ECDSA 证书,仅在不可用时回退到 RSA 证书。
不用 Cloudflare 也可以部署双证书:
NGINX 服务器是支持同时部署 ECDSA 和 RSA 数字证书的,因此如果不使用 Cloudflare 的话也可以自己直接在服务器上部署双证书从而减少服务器资源开销和提升访问速度。
当然前提是用户需要同时申请 ECDSA 和 RSA 证书,免费证书里包括 Let's Encrypt 和 Google Trust Services 都可以提供 ECDSA 和 RSA 证书,在申请时用户可以指定算法类型从而获取不同类型的证书。
证书申请上推荐使用 Certimate 工具,该工具可以通过 Docker 部署,可以实现证书申请、续期、部署自动化,也可以手动选择 ECDSA 算法 (EC-256 等) 或 RSA2048 等,使用非常方便。
如何在 NGINX 中部署双证书:
部署方式也非常简单,将两种不同类型的证书都放到特定文件夹里,然后在网站 conf 配置文件里添加就行,需要将 ECDSA 证书放到 RSA 证书上面,这样默认使用 ECDSA 证书,当 NGINX 检测到浏览器或操作系统不支持 ECDSA 时就自动使用 RSA 证书。
这里以宝塔面板为例:
宝塔面板默认的 SSL 设置中可以设置 ECDSA 证书 pem 和 key 信息,保存后转到配置文件(即网站的 conf 文件)中添加 RSA 证书配置行:
保存后重启 NGINX 服务器检查是否报错,如果没有报错说明证书路径调用是没有错误的,这时候可以打开浏览器访问网站检查默认证书是否为 ECDSA,可以通过检查证书算法里查看是否为 ECDSA。
但现在我们可能都没有 Windows XP 这类古老系统,这种情况下无法测试 RSA 证书是否生效,我们可以通过 SSLLABS 进行在线扫描,这里可以检测出已经部署的不同证书:https://www.ssllabs.com/ssltest/analyze.html?d=5lnews.com (如本文配图1和2)



![[技巧] 谷歌在Chrome浏览器中内置AI模型可以本地对话 下面是开启方法](https://5lnews.com/landian/2024/06/104387-T.png)
![[白嫖] 纯IP地址也可以申请TLS证书实现HTTPS 完全免费不用每年花3000块](https://5lnews.com/landian/2022/04/93605.png)
![[技巧] 不喜欢Windows 11的小组件功能?直接命令行彻底删除](https://5lnews.com/landian/2022/10/95616-T.png)
![[技巧] Windows 11 24H2版出现Pcasvc.dll(缺少条目)报错的解决方案](https://5lnews.com/landian/2024/06/104275T.png)


![[教程] VMware Workstation添加vTPM模块兼容Windows 11系统](https://5lnews.com/wp-content/uploads/grafika/88518T.jpg)
![[技巧] 新版腾讯QQ开始在桌面上弹窗游戏广告 下面是彻底关闭方法](https://5lnews.com/landian/2024/04/103482-T.png)

![[教程] 为Windows 11 LTSC 2024添加小组件支持 (任务栏添加并启用小组件)](https://5lnews.com/landian/2024/11/106475-T.webp)