ECC(橢圓曲線密碼學)和 RSA 是兩種用於生成 SSL 證書金鑰對的演算法。兩者都是安全的,但 ECC 能生成安全性等同但更小的金鑰和更快的 TLS 握手。大多數現代部署應使用 ECC。
快速對比
| ECC (P-256) | RSA 2048 | RSA 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:
| 機構 | 金鑰型別 | 備註 |
|---|---|---|
| ECDSA P-256 | 所有 Google 資產 | |
| Cloudflare | ECDSA P-256 | 所有免費計劃證書的預設值 |
| Facebook / Meta | ECDSA P-256 | 生產 Web 伺服器 |
| Let’s Encrypt | 推薦 ECDSA | 兩者都簽發,推薦 ECC |
| ZeroSSL | ECDSA 增長中 | 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(也稱為 prime256v1 或 secp256r1)具有以下特點:
- 所有現代瀏覽器和伺服器都支援
- 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。