情況描述
在來此加密網站上,免費申請成功得到域名SSL證書,部署到服務器中。環境為windows + apache,按照網站上的部署教程部署后,無法啟動apache。查看apache的錯誤日志為:
[ssl:emerg] [pid 748:tid 740] AH01910: Oops, no RSA or DSA server certificate found for 'x.xxx.xx:0'?! [ssl:emerg] [pid 748:tid 740] AH02312: Fatal error initialising mod_ssl, exiting. [mpm_winnt:crit] [pid 5400:tid 660] (OS 5)拒絕訪問。 : AH00378: Apache2a: Failed to start the service process.
初步排查原因:
1、檢查了SSL證書是真實有效的。
2、證書配置路徑也沒有問題。
3、取消證書配置,apache能夠正常啟動。
4、配置 SSLEngine on 已經添加。
最終原因:
申請的SSL證書是ECC加密的證書,比較高級,低版本的apache不支持。Apache HTTP Server 2.2.26 以上版本支持ECC SSL證書。Apache HTTP Server 2.2.26其中一條更新日志:
mod_ssl: enable support for ECC keys and ECDH ciphers. Tested against OpenSSL 1.0.0b3.
ECC SSL證書兼容性
Web服務器:Apache HTTP Server 2.2.26+,Apache Tomcat 1.1.30+,Dovecot 2.2.5+,IBM HTTP Server 8.0+,NGINX 1.1.0+,Windows Server 2008+
瀏覽器:Firefox 2+,Apple Safari 4+ (with a compatible OS),Google Chrome 1.0+ (with a compatible OS),Microsoft Internet Explorer 7+ (Vista)
如果你的環境低於這些版本,說明不支持使用ECC算法的SSL證書。
ECC算法 和 RSA算法
RSA 算法是1976 年提出來的,為了保障數據的安全,RSA 的密鑰需要不斷增加,導致加解密的速度大為降低。
ECC算法是1985 年提出來的。和 RSA 相比,在許多方面都有對絕對的優勢,抗攻擊性強,CPU 占用少,內容使用少,網絡消耗低,加密速度快。
如何選擇
在申請域名SSL證書的時候,該如何選擇加密算法
RSA:考慮到更廣的適用性,兼容所有平台。
ECC:更加安全高效,部分平台不支持。
來此加密:申請免費證書時,選擇合適的加密類型。