申请获得服务器证书有三张,一张服务器证书,二张中级CA证书。在Android微信中访问Https,如果服务器只有一张CA证书,就无法访问。
- 获取服务器证书中级CA证书:
为保障服务器证书在客户端的兼容性,服务器证书需要安装两张中级CA证书(以证书签发邮件为准,部分证书产品只有一张中级证书),根证书或证书链内容,放在服务器证书内容的后边。将证书签发邮件中的从BEGIN到 END结束的服务器证书内容(包括"-----BEGIN CERTIFICATE-----"和"-----END CERTIFICATE-----")和二张中级CA证书合并为一个文件:将证书签发邮件中的从BEGIN到?END结束的两张中级CA证书内容(包括"-----BEGIN?CERTIFICATE-----"和"-----END?CERTIFICATE-----")粘贴到同一个记事本等文本编辑器中,中间用回车换行分隔。修改文件扩展名,保存为intermediatebundle.crt文件。jexus采用的是Openssl 的API,证书文件按openssl处理,涉及到二级证书的,需要把获得三张证书合并在一个证书文件里。
- 获取服务器SSL证书私钥?
将生成服务器征求请求时保存的server.key文件,保存为server.pem文件。
Jexus 5.8版本支持二级证书,5.8以下版本不支持,需要使用二级证书的同学记得把Jexus 升级到5.8版本。5.8的 jws.conf 中,已经新增了一个配置行,叫 SSL_TLS_Version,用于设置ssl tls的版本号,可选值为: sslv2、sslv3、tlsv1_0、tlsv1_1、tlsv1_2
如果不设或设为ssl2,jexus将选择sslv3并可降级为sslv2,如果服务启动过程中发生下面错误,可以把SSL_TLS_Version设置为sslv2。
SSL_TLS_Version = sslv2
12-08?20:25:42:?*[180.153.5.156]:?Illegal?read!?path:?http://183.60.15.160,?Host:?login.oa.tencent.com
12-08?20:25:43:?***?SSL_Accept():?Return:0,?SSL_ERROR=SSL_ERROR_SSL,?Errno=0,?Text=error:14094410:SSL?routines:SSL3_READ_BYTES:sslv3?alert?handshake?failure
?
记得需要重启jexus服务器生效。