Fork me on GitHub

Jexus服务器SSL二级证书安装指南

申请获得服务器证书有三张,一张服务器证书,二张中级CA证书。在Android微信中访问Https,如果服务器只有一张CA证书,就无法访问。

  1. 获取服务器证书中级CA证书:

为保障服务器证书在客户端的兼容性,服务器证书需要安装两张中级CA证书(以证书签发邮件为准,部分证书产品只有一张中级证书),根证书或证书链内容,放在服务器证书内容的后边。将证书签发邮件中的从BEGIN到 END结束的服务器证书内容(包括"-----BEGIN CERTIFICATE-----"和"-----END CERTIFICATE-----")和二张中级CA证书合并为一个文件:将证书签发邮件中的从BEGIN到 END结束的两张中级CA证书内容(包括"-----BEGIN CERTIFICATE-----"和"-----END CERTIFICATE-----")粘贴到同一个记事本等文本编辑器中,中间用回车换行分隔。修改文件扩展名,保存为intermediatebundle.crt文件。jexus采用的是Openssl 的API,证书文件按openssl处理,涉及到二级证书的,需要把获得三张证书合并在一个证书文件里。

  1. 获取服务器SSL证书私钥 

将生成服务器征求请求时保存的server.key文件,保存为server.pem文件。

 Jexus 5.8版本支持二级证书,5.8以下版本不支持,需要使用二级证书的同学记得把Jexus 升级到5.8版本。5.8可以设定SSL/TLS版本,默认是SSLv23,SSLv23可以同时支持SSLv3、TLSv1.0、TLSv1.1和TLSv1.2,具有比较广泛的版本兼容性。为了提高安全性,用户可以强制先择版本,比如设为SSLv1.2,这时,需要客户端具备并启用了SSLv1.2的支持。

如果不设或设为ssl2,jexus将选择sslv3并可降级为sslv2,如果服务启动过程中发生下面错误,可以把SSL_TLS_Version设置为sslv2。(备注:SSL版本号其实并无SSLv23的版本,而是OpenSSL有一个版本控制,方法名含有SSLv23这种字样,意思是支持SSLv3版本为主,同时可以降级为SSLv2。不过,实测后发现,不会降为SSLv2,而是兼容所有更高版本)

SSL_TLS_Version = sslv2

默认值时,相当于双方可协商。为了部署方便,就用默认值(不启用版本号控制),为了提供安全性,用户也可以强制设定版本号,比如,只允许TLSv1.2,查了IE,IE8最高支持到TLSv1.0,而IE11可以支持到最高版本TLSv1.2,即支持目前所有的版本。 SSLv2这个配置其实没有SSLv2对应的是sslv23,设为其它标准的值,就是具体的了,所以,如果你设为SSLv3,客户端浏览器等就必须用SSLv3与服务器交流,设为TLSv1.2,客户端就只能用TLSv1.2的标准与服务器交流,如果客户端没有对应的版本号,就会连接失败,服务器端就会记一笔异常,说是SSLV3_GET_xxxxx的版本号错误。

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

   

异常是这样的,当服务器设为SSLv2时,如果对方不支持SSLv2,会有这样的异常:

当服务器设为SSLv3可TLSvxx时,如果对方不支持,会出现

 

记得需要重启jexus服务器生效。

SSLv3 协议漏洞‘POODLE’,如何在jexus 中禁用sslv2,sslv3,只启用tls 

http://liuqunying.blog.51cto.com/3984207/1565610 

在jws.conf中设置


jexus版本要求5.8.0以上,现在是5.8.1.3
用“ sudo curl jexus.org/5.8.x/upgrade| sh ”更新到最新版。不过这个命令的目标文件夹是 /usr/jexus

posted @ 2015-12-09 08:37 张善友 阅读(...) 评论(...) 编辑 收藏