SSL 證書錯誤會阻止訪客安全訪問你的網站。本指南涵蓋每個常見錯誤程式碼的含義和修復方法——無論你是訪客還是網站管理員。
關於最常見的特定錯誤,請參閱我們的專題指南:“您的連線不是私密連線”修復 →
錯誤參考表
| 錯誤程式碼 (Chrome) | Firefox 等效 | 含義 | 修復 |
|---|---|---|---|
NET::ERR_CERT_DATE_INVALID | SEC_ERROR_EXPIRED_CERTIFICATE | 證書過期 | 續簽證書 |
NET::ERR_CERT_COMMON_NAME_INVALID | SSL_ERROR_BAD_CERT_DOMAIN | 域名與證書不匹配 | 獲取正確域名的證書 |
NET::ERR_CERT_AUTHORITY_INVALID | SEC_ERROR_UNKNOWN_ISSUER | 自簽名或不受信任的憑證授權機構 | 使用 Let’s Encrypt |
NET::ERR_CERT_REVOKED | SEC_ERROR_REVOKED_CERTIFICATE | 證書已被吊銷 | 獲取新證書 |
NET::ERR_SSL_PROTOCOL_ERROR | SSL_ERROR_RX_RECORD_TOO_LONG | TLS 握手失敗 | 檢查伺服器配置 |
NET::ERR_SSL_VERSION_OR_CIPHER_MISMATCH | SSL_ERROR_NO_CYPHER_OVERLAP | 無共同的 TLS 版本/加密套件 | 啟用 TLS 1.2+ |
ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN | — | HPKP pin 不匹配 | 更新或移除 HPKP pins |
ERR_CERTIFICATE_TRANSPARENCY_REQUIRED | — | 缺少 CT 日誌條目 | 從符合 CT 要求的憑證授權機構重新簽發 |
詳細錯誤解決方案
ERR_CERT_DATE_INVALID — 證書過期
原因: 證書的 Not After 日期已過。使用 90 天的 Let’s Encrypt 證書,如果忘記續簽就會發生。
訪客修復: 檢查裝置的日期和時間——如果時鐘不對,有效的證書也會顯示為過期。
管理員修復:
# Check the actual expiry
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate
立即續簽,替換檔案,重新載入伺服器。設定監控以防止未來再次發生。
ERR_CERT_COMMON_NAME_INVALID — 域名不匹配
原因: 證書籤發給了 example.com 但你訪問的是 www.example.com(或反之),或證書覆蓋的是完全不同的域名。
管理員修復:
# Check which domains the certificate covers
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -ext subjectAltName
獲取包含所有所需域名的新證書。在 GetHTTPS 中,同時新增 example.com 和 www.example.com。
ERR_CERT_AUTHORITY_INVALID — 不受信任的憑證授權機構
原因: 證書是自簽名的、由未知憑證授權機構簽發的、或中間證書鏈不完整。
管理員修復:
- 如果是自簽名 → 替換為 Let’s Encrypt 證書
- 如果證書鏈不完整 → 使用
fullchain.pem(Nginx)或新增SSLCertificateChainFile(Apache) - 如果是未知憑證授權機構 → 切換到受信任的憑證授權機構
ERR_SSL_PROTOCOL_ERROR — 握手失敗
原因: 伺服器的 TLS 配置損壞——錯誤的證書路徑、損壞的檔案或配置錯誤。
管理員修復:
# Test the TLS connection
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com
# Check if the certificate and key match
openssl x509 -noout -modulus -in cert.pem | openssl md5
openssl rsa -noout -modulus -in privkey.pem | openssl md5
# Hashes must match
常見原因:伺服器配置中檔案路徑錯誤、證書和金鑰來自不同會話、檔案許可權過於嚴格。
ERR_SSL_VERSION_OR_CIPHER_MISMATCH — 無相容的 TLS
原因: 伺服器只支援瀏覽器已放棄的舊 TLS 版本(1.0/1.1),或使用瀏覽器不支援的加密套件。
管理員修復:
# Nginx — enable modern TLS
ssl_protocols TLSv1.2 TLSv1.3;
# Apache
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
混合內容警告
原因: 你的 HTTPS 頁面透過 HTTP 載入圖片、指令碼或 CSS。
這不是證書錯誤——證書沒問題,但頁面引用了不安全的資源。完整混合內容修復指南 →
診斷流程
遇到任何 SSL 錯誤時,按以下順序排查:
1. Check the error code → identifies the category
↓
2. Check the certificate details
openssl s_client -connect domain:443 -servername domain
↓
3. Is it expired? → Renew
Domain mismatch? → Re-issue for correct domain
Chain incomplete? → Use fullchain.pem
Self-signed? → Switch to Let's Encrypt
Config error? → Check file paths and permissions
↓
4. After fixing → reload server, clear browser cache, verify
線上診斷工具
| 工具 | URL | 檢查內容 |
|---|---|---|
| SSL Labs | ssllabs.com/ssltest | 完整 SSL 審計(A-F 評分) |
| SSL Checker | sslshopper.com/ssl-checker | 證書鏈、過期、域名匹配 |
| Certificate Search | crt.sh | Certificate Transparency 日誌 |
| Why No Padlock | whynopadlock.com | 混合內容檢測 |
常見問題
修復了錯誤但瀏覽器仍然顯示
清除瀏覽器快取(Ctrl+Shift+Delete)或在隱身視窗中測試。瀏覽器快取 SSL 狀態,HSTS 可能強制執行快取的決定。在 Windows 上,還要清除 SSL 狀態:Internet 屬性 → 內容 → 清除 SSL 狀態。
某些瀏覽器出現錯誤但其他瀏覽器沒有
不同瀏覽器有不同的信任儲存和快取。最常見的原因:不完整的證書鏈,某些瀏覽器可以從快取中填充而其他瀏覽器不能。透過在伺服器上提供完整的證書鏈來修復。
如何防止 SSL 錯誤?
- 監控證書過期 — 設定第 60 天(共 90 天)的告警
- 使用
fullchain.pem而不是cert.pem— 防止證書鏈錯誤 - 在證書中包含所有域名變體(www + 非 www)
- 為生產伺服器設定使用 Certbot 自動續簽
- 每次更改後用 SSL Labs 測試