情况描述
在来此加密网站上,免费申请成功得到域名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:更加安全高效,部分平台不支持。
来此加密:申请免费证书时,选择合适的加密类型。