javax.net.ssl.SSLHandshakeException: Remote host closed connection during han 報錯解決

javax.net.ssl.SSLHandshakeException: Remote host closed connection during han

北京某銀行信用卡網申開發團隊發來協助請求,內容是這樣的:

內網中應用服務器要實現某一功能,需要從外網銀聯端獲取一段數據,而內網應用服務器與外網銀聯服務器的網絡是不通的,需要在內網前端配置一臺代理服務器,將內網應用與外網銀聯接通網絡,另外銀聯服務端提供的https協議的接口。

如圖所示:
這裏寫圖片描述

代理服務器預裝的IBM Http Server, 他們之前配置了代理,而且還在代理server加了證書,這些都是多餘的,代理server只提供了放開網絡的功能,不需要證書,於是全給刪了,只需要配置正向代理即可:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so

Listen 7701
NameVirtualHost *:7701
<VirtualHost *:7701>
        ProxyRequests On
        ProxyVia On
        <Proxy *>
                Order deny,allow
                Deny from all
                allow from 192.168.126.100
                allow from 192.168.126.101
        </Proxy>
</VirtualHost>

配置完,重啓服務,在應用server驗證,

curl -x 192.168.10.10 http://www.baidu.com 

可以獲取百度首頁數據。證明正向代理正常。

關鍵問題來了!

應用在向銀聯發請求是總是報錯

javax.net.ssl.SSLHandshakeException: Remote host closed connection during han

下面是解決方案,沒有圖全是字

看報錯首先就能想到SSL加密的問題,問題就出在應用的代碼中了,給出分析並建議:
1. 因爲對端開放的是https加密接口,應用發出的請求也需要是https請求
2. 使用瀏覽器驗證網銀https域名,可以打開頁面,但是!瀏覽器提示不安全證書,應該是一個自簽證書,瀏覽器可以點擊“添加例外”或“繼續瀏覽”來打開頁面,但應用發出的請求無法模擬瀏覽器的步驟,所以在代碼中需要修改“忽略證書安全驗證”或“繞過證書驗證”。
3. 獲取對端SSL加密方式,應用代碼中需要配置相同的加密方式。
給出三個方面的建議,最終,在SSL加密方式上作了修改,問題得到解決。

下圖是修改SSL加密過重中拍的圖,希望可以給開發的同事得到一點幫助。
這裏寫圖片描述

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