記錄一次https的調試

前言:最近公司b2b,b2c生產環境更換了http協議爲https,隨之而來就是所有內外部通訊通知,都要更換,所以有了這次https的調試。
註釋:這裏面Java https發送的代碼就不展示了,網上也可以找到很多,如果有需要我可以後續粘貼出來。

第一次調試
語言:Java 
環境:JDK1.7

啓動服務,第一次發送帶參數的POST的HTTPS 請求。
這裏提示報sslv3錯誤
問題:提示SSLv3協議錯誤,服務器選擇sslv3但是本地環境不支持。
爲啥不支持SSLv3協議?這裏我搜索了下相關問題。原來是SSLv3有安全漏洞,JDK1.7以後已經把SSLv3默認禁止了。
但是此時,我需要使用到SSLv3在已有的環境中怎麼辦?更換JDK試試?於是有了第二次調試。

第二次調試
語言:Java
環境:JDK1.6

因爲項目是以JDK1.7環境開發的所以更換爲1.6以後項目很多報錯,所以只能以main函數的方式進行測試。
結果爲通訊正常。終於通了,驗證了這個問題。
**1.JDK1.6 SSLv3協議可以使用。
2.JDK1.7 因爲安全問題應該是禁止或是移除了SSLv3協議。**
這樣就有了眉目,如果JDK1.7是禁止了協議,應該會有方法找回來,如果是移除掉了就不好辦了。

第三次調試
語言:Java
環境:JDK1.7

鑑於前兩次的調試,有了些解決的思路。既然是安全問題使JDK1.6以後不能再使用SSLc3協議,那我就去看看JDK1.7的安全配置文件有沒有線索。\jre\lib\security\java.security


打開java.security 文件,試着搜索一下SSLv3,結果查找出一條這樣的信息。

jdk.tls.disabledAlgorithms=SSLv3

disabled禁止了SSLv3協議,嘗試注掉這行配置。

#jdk.tls.disabledAlgorithms=SSLv3

再次運行,成功運行!這次https的調試終於暫時結束了。


ps:jdk裏面會有兩個文件夾jre的,以jdk1.7 爲例,裏面就有jre 和 jre7,修改配置文件只需要修改jre中的java.security 文件就可以。還有注掉這行配置可能有安全問題的隱患,我的這次調試只是有一個解決這個問題的思路。希望能有個更好的解決這個問題的方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章