SSL在移动网站上无法工作。
SSL在移动网站上无法工作。
我在StarCom获得了一年的SSL证书,之后我重新发布了新证书并在我的ubuntu上的apache2服务器上替换了文件。从那时起,我无法在移动设备上访问我的网站。不幸的是,iOS没有显示任何错误,只是一个空白页面。
我检查了所有的SSL检查器,它们都给了我A+。这是我的配置的一部分:
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL
SSLCertificateFile /etc/ssl/domain/new/domain.crt
SSLCertificateKeyFile /etc/ssl/domain/new/private.key
# SSLCertificateChainFile /etc/ssl/domain/new/1_root_bundle.crt
SSLCACertificateFile /etc/ssl/domain/new/cer.crt
我花了整个晚上寻找解决办法,但没有结果。所有证书都是有效的,包括CA。我尝试启用链,但结果仍然是一样的。
通过使用Mac的Safari对iOS设备进行调试,我得到了以下错误:
无法加载资源:此服务器的证书无效。您可能正在连接到一个假冒为“your.site.com”的服务器,这可能会危及您的机密信息。
问题原因:SSL证书链配置错误,可能是由于服务器配置错误导致的。可能是缺少证书链文件或者文件中的内容有误。
解决方法:需要重新配置SSLCertificateChainFile
,确保1_root_bundle.crt
文件中包含了从根证书到叶子证书的完整证书链。在starcom的情况下,可能有1个中间证书,所以证书链将包含两个证书。证书链只是一串PEM编码的证书文本,如果打开1_root_bundle.crt
文件,你会看到一段像----- BEGIN CERTIFICATE -----
和----- END CERTIFICATE -----
的文本。
如果使用的是apache 2.4.8版本,可以将所有证书都包含在domain.crt
文件中,然后不再使用SSLCertificateChainFile
属性。具体请参考文档。
另外还需要移除SSLCACertificateFile
属性。