所有 SSL 文章 SSL 与证书

ECC 与 RSA 证书:该如何选择?

ECC(椭圆曲线密码学)和 RSA 是两种用于生成 SSL 证书密钥对的算法。两者都是安全的,但 ECC 能生成安全性等同但更小的密钥更快的 TLS 握手。大多数现代部署应使用 ECC。

快速对比

ECC (P-256)RSA 2048RSA 4096
密钥大小256 位2048 位4096 位
等效安全性~128 位~112 位~128 位
TLS 握手速度最快中等最慢
证书大小~500 字节~1,200 字节~2,400 字节
密钥生成中等
浏览器支持所有现代浏览器通用通用
Let’s Encrypt 默认✅ 推荐支持支持
GetHTTPS 默认✅ P-256可选不提供

为什么 ECC 对大多数场景更好

更小的密钥,相同的安全性

256 位的 ECC 密钥提供等同于 3072 位 RSA 密钥的安全性。更小的密钥意味着:

  • 更小的证书 → TLS 握手时传输更少的数据
  • 更快的签名验证 → 更低的 CPU 负载
  • 更低的带宽消耗 → 对高流量站点和移动端连接尤为重要

更快的握手

ECDSA 签名操作比 RSA 显著更快,尤其在服务器端。对于高流量站点,这减少了 CPU 使用和首字节时间。

前向保密

现代 TLS 使用 ECDHE(临时椭圆曲线 Diffie-Hellman)进行密钥交换,无论你的证书类型如何。但 ECC 证书与 ECDHE 天然配对——整个握手都使用椭圆曲线数学,比混合 RSA 和 ECDHE 更高效。

何时 RSA 仍有意义

旧设备兼容性

一些旧设备、嵌入式系统和物联网硬件不支持 ECC。如果你需要支持:

  • Windows XP SP2 或更早版本
  • 非常旧的 Android 版本(< 4.0)
  • 某些嵌入式系统或硬件负载均衡器

…那么 RSA 2048 是更安全的选择。

组织要求

某些合规框架或内部政策可能指定使用 RSA。这种情况越来越少,但请检查你的要求。

实际采用情况

行业正从 RSA 迁移到 ECC:

机构密钥类型备注
GoogleECDSA P-256所有 Google 资产
CloudflareECDSA P-256所有免费计划证书的默认值
Facebook / MetaECDSA P-256生产 Web 服务器
Let’s Encrypt推荐 ECDSA两者都签发,推荐 ECC
ZeroSSLECDSA 增长中ECC 签发量增长 51.1%(所有 CA 中增长最快)

如何检查你的站点使用什么

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null \
  | openssl x509 -noout -text | grep "Public Key Algorithm"
# ECDSA: "id-ecPublicKey"
# RSA: "rsaEncryption"

或者在浏览器中查看:锁头图标 → 证书 → 详情 → 主题公钥信息。

GetHTTPS 使用什么

GetHTTPS 默认为证书生成 ECDSA P-256 密钥,ACME 账户密钥也使用 P-256。如果需要,你可以为证书密钥选择 RSA 2048。

P-256(也称为 prime256v1secp256r1)具有以下特点:

  • 所有现代浏览器和服务器都支持
  • Let’s Encrypt 推荐
  • 大多数高流量网站使用(Google、Cloudflare 等)
  • Web Crypto API 支持(GetHTTPS 用于密钥生成)

后量子计算考虑

ECC 和 RSA 都不具备量子安全性。足够强大的量子计算机可以利用 Shor 算法破解两者。行业正在通过开发后量子密钥交换(ML-KEM,前称 Kyber)为 TLS 做准备,将以混合模式与现有算法配合使用。

这不影响你今天的证书选择——向后量子的迁移将在协议层(TLS)发生,而非证书层。现在使用 ECC,让 TLS 协议栈处理过渡。

常见问题

能从 RSA 切换到 ECC(或反之)吗?

可以。生成一张使用所需密钥类型的新证书并替换服务器上的文件即可。服务器不关心之前的证书使用什么算法。

Web 服务器需要为 ECC 做特殊配置吗?

不需要。Nginx 和 Apache 处理 ECC 证书的方式与 RSA 相同——相同的指令、相同的文件格式(PEM)。服务器会自动检测密钥类型。

P-384 比 P-256 更好吗?

P-384 提供约 192 位安全性,而 P-256 约 128 位。实际上,128 位安全性远超当前(或可预见未来)的破解能力。P-256 更快且更广泛地被优化。除非你有特定的合规要求需要 P-384,否则使用 P-256。

相关文章

SSL 与证书 2026-05-07
SSL/TLS 如何工作:TLS 握手详解
TLS 握手的可视化解析——浏览器和服务器如何在毫秒内建立加密连接。涵盖 TLS 1.2、TLS 1.3、会话恢复和前向保密。
SSL 与证书 2026-05-07
什么是 CSR(证书签名请求)?
CSR 是发送给证书颁发机构以申请 SSL 证书的消息。了解 CSR 包含什么、如何生成,以及为什么 GetHTTPS 会自动处理它。
快速开始 2026-05-08
如何获取免费 SSL 证书(分步指南)
5 分钟从 Let's Encrypt 获取免费 SSL 证书 — 无需安装软件、无需注册账号。涵盖 4 种方法、两种验证方式、6 个平台的安装教程和故障排除。
在浏览器中获取免费 SSL 证书
无需安装,无需账号。私钥始终留在你的设备上。
获取证书