今天同事告诉我说他的应用调用我开发的API报异常了,原因跟SSL有关系,因为之前调试一直调用的是HTTP服务API,今天调试HTTPS服务API时报错了,并且找到了一篇文章让我看了一眼,文章中提到了Web服务器jetty 和nginx没有提到apache,并且解决方案里只有nginx的,而我们用的是apache,并且我们的API在浏览器和soapui中测试都是可以的,不知道为什么在Android这里卡住了。
想了一下,因为之前弄的证书中有三个文件,其中有一个证书文件没有用到,那个证书应该是根证书,先不管那么多,在网上找了一下关于apache设置根证书的方法,改上去,重新加载了一下,再让同事测试一下,OK了,解决问题了。
<VirtualHost *:443> ServerName test.test.com DocumentRoot /var/www/html/demo SSLEngine On SSLOptions +StrictRequire SSLCertificateFile /etc/ssl/certs/2_test.com.crt SSLCertificateKeyFile /etc/ssl/certs/3_test.com.key
#就是下面这一行,不能省了 SSLCertificateChainFile /etc/ssl/certs/1_root_bundle.crt </VirtualHost>
总结:申请证书时,人家给了三个文件,那三个都得用上才行.