java爬蟲爬取https協議的網站時,SSL報錯, java.lang.IllegalArgumentException TSLv1.2 報錯
目前在廣州一家小公司實習,這裡的學習環境還是挺好的,今天公司從業十幾年的大佬讓我檢查一下幾年前的爬蟲程式是否還能使用……
我從myeclipse上check out了大佬的程式,放到workspace中開始試探……
第一個錯誤出現了:握手失敗,https三次握手機制是我遇到的第一個問題……
大佬似乎發現了我的問題,於是過來指導,“你先這樣,再這樣,就可以了”……
驚慌的我趕快點頭,“嗯嗯……”
於是按照大佬的指點,首先在對應的jdk目錄下新增檔案……
對應檔案我放在百度上了,連結是:連結: https://pan.baidu.com/s/1GpKaF8zlF0ONJf3y_L7igg 提取碼: nscm
大佬給我說的是:上面三個壓縮包,選擇對應的版本,把裡面的兩個檔案:local_policy.jar,US_export_policy.jar覆蓋掉,目錄就是第一行的目錄。
然後在選項:windows-preferences-java-Installed JREs中,點選你的jdk版本,點右邊的edit鍵,在Default VM Arguments中,把除錯模式開啟,並新增支援的協議型別(建議大家按我這樣寫)……當然,具體情況需要具體分析,看報什麼錯。
我嚴格的按照大佬的要求來,發現沒用,還是報錯,不知道是不是我剛開始把所有的協議都寫上去的原因……
但是還是要搞定這個問題啊,於是,我開始瘋狂百度,終於讓我找到了解決辦法。
那就是,下載 bcprov-ext-jdk15on-1.52 bcprov-jdk15on-1.52 這兩個jar包,給大家貢獻一個下載jar包的網站: https://mvnrepository.com/ 基本上我找jar包都是在這裡了……
下載好之後,我們把jar包放到 $JAVA_HOME/jre/lib/ext 目錄下面,然後編輯 $JAVA_HOME/jre/lib/security/目錄下的 java.security 檔案……
找到security.provider.9,然後在這句話下面加上:
security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider
之後,就重啟一下myeclipse,畢竟重啟能解決很多問題……
如果你嚴格按照我的步驟做到這裡,問題基本上應該能解決了,如果還沒有解決的話,那就換jdk版本試試。
需要更換專案jdk版本的話嗎,請參照我的另一篇隨筆…… https://www.cnblogs.com/sixgodbiao/p/10479887.html