記錄一次https的調試

前言:最近公司b2b,b2c生產環境更換了http協議爲https,隨之而來就是全部內外部通信通知,都要更換,因此有了此次https的調試。
註釋:這裏面Java https發送的代碼就不展現了,網上也能夠找到不少,若是有須要我能夠後續粘貼出來。java

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

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

第二次調試
語言: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.securityruby


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

jdk.tls.disabledAlgorithms=SSLv3

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

#jdk.tls.disabledAlgorithms=SSLv3

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


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