最近生产有个项目访问第三方接口时突然报异常了,查下来是因为对方升级了Https的TLS版本到1.2,不再支持1.0和1.1。
因为是老项目用的还是jdk1.6,默认是不支持的TLS1.2的。代码久远很久没有维护想再升级jdk比较困难,有可能还会导致其他的未知问题。所以想到能否在服务器上配置一个代理来做请求转发,大致思路如下:
说干就干,按步骤实现
第一步:配置服务器上的hosts
修改路径:/etc/hosts,127.0.0.1 localApi,这里的ip是nginx的内网地址,这里是直接在项目服务器上安装了个nginx
第二步:配置nginx正向代理
server { # 代理端口 listen 6789; server_name localApi; location / { # 正向代理配置,根据请求地址自动解析出目标网站地址并进行代理 proxy_pass https://api.xxxxxxxxxxx.com; access_log /var/log/nginx/proxyAccess.log main; error_log /var/log/nginx/proxyError.log; } }
第三步:使用curl命令测试
敲击命令:curl http://localApi:6789
收到对方接口正常返回,验证成功。
第四步:修改项目中的接口地址
将原接口地址:https://api.xxxxxxxxxxx.com 修改为:http://localApi:6789
验证:发起业务请求成功收到响应!
至此改造完成。
原创类文章未经允许请勿转载:39点博客 » 配置Nginx正向代理让老项目适配Https的TLS高版本