申請獲得服務器證書有三張,一張服務器證書,二張中級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可以設定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
文章列表