北京某银行信用卡网申开发团队发来协助请求,内容是这样的:
内网中应用服务器要实现某一功能,需要从外网银联端获取一段数据,而内网应用服务器与外网银联服务器的网络是不通的,需要在内网前端配置一台代理服务器,将内网应用与外网银联接通网络,另外银联服务端提供的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加密的问题,问题就出在应用的代码中了,给出分析并建议:
下图是修改SSL加密过重中拍的图,希望可以给开发的同事得到一点帮助。