申請得到服務器證書有三張,一張服務器證書,二張中級CA證書。在Android微信中訪問Https,若是服務器只有一張CA證書,就沒法訪問。瀏覽器
爲保障服務器證書在客戶端的兼容性,服務器證書須要安裝兩張中級CA證書(以證書籤發郵件爲準,部分證書產品只有一張中級證書),根證書或證書鏈內容,放在服務器證書內容的後邊。將證書籤發郵件中的從BEGIN到 END結束的服務器證書內容(包括"-----BEGIN CERTIFICATE-----"和"-----END CERTIFICATE-----")和二張中級CA證書合併爲一個文件:將證書籤發郵件中的從BEGIN到 END結束的兩張中級CA證書內容(包括"-----BEGIN CERTIFICATE-----"和"-----END CERTIFICATE-----")粘貼到同一個記事本等文本編輯器中,中間用回車換行分隔。修改文件擴展名,保存爲intermediatebundle.crt文件。jexus採用的是Openssl 的API,證書文件按openssl處理,涉及到二級證書的,須要把得到三張證書合併在一個證書文件裏。安全
將生成服務器徵求請求時保存的server.key文件,保存爲server.pem文件。 服務器
Jexus 5.8版本支持二級證書,5.8如下版本不支持,須要使用二級證書的同窗記得把Jexus 升級到5.8版本。5.8能夠設定SSL/TLS版本,默認是SSLv23,SSLv23能夠同時支持SSLv三、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,而是兼容全部更高版本)curl
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的版本號錯誤。url
12-08 20:25:42: *[180.153.5.156]: Illegal read! path: http://183.60.15.160, Host: login.oa.tencent.com spa
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,會有這樣的異常: server
當服務器設爲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