前段时间项目上明明好好的定时任务,发生了崩溃,好几天的数据都没有获取到。
查了下日志发现大批量的javax.net.ssl.SSLException: Received fatal alert: protocol_version;
在Java 1.8上,默认TLS协议是v1.2。在Java 1.6和1.7上,默认是已废弃的TLS1.0
这个原因是我能找到的一个可靠的说法,但这个接口以前就是https的,我认为这个三方的服务接口应该是被做了限制。具体怎样的不得而知
解决办法:
平常我们的httpclient请求是这样的
public static CloseableHttpResponse postHttp(String url) throws Exception{
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
CloseableHttpResponse response = null;
response = httpclient.execute(httpPost);
return response;
改为,使用TLSv1.2创建httpclient的方式即可,亲测有效
public static CloseableHttpResponse getHttp(String url) throws Exception{
SSLContext ctx = SSLContexts.custom().useProtocol("TLSv1.2").build();
CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(new SSLConnectionSocketFactory(ctx)).build();
HttpGet httpGet = new HttpGet(url);
CloseableHttpResponse response = null;
response = httpClient.execute(httpGet);
return response;
1.错误发生的场景:eclipse 项目运行maven install,报错了
2.错误的主要描述:Failed to execute goal org.apache.maven.plugins:maven-install-plugin:
2.4:install (default-install) on project TENDJ:
Execution default-install o...
1.问题:
由于后台第三方服务器进行了变更,所以服务地址进行了切换,但是切换地址后我本地(JDK1.8)是可以连通的,但是上测试服务器(JDK1.7)发送报文后,第三方运维人员说没有收到请求,并且返回的错误为:Received fatal alert: protocol_version
2.问题检索:
根据网上搜索资料发现可能是传输过程中支持的网络协议不一致导致第三方服务器拒绝访问,与第三方运维人员沟通后发现第三方新的服务平台最低支持TLSv1.2,这个是JDK1.8请求远程服务默认打开的协议,但是J
public static void getcipher(){
SSLServerSocketFactory ssf =(SSLServerSocketFactory)SSLServerSocketFactory.getDefault();
TreeMap<String,Boolean> ciphers = new TreeMap<String,Boolean>...
因公司对接oppoSDK登陆,需要调用oppo的接口,近期调用过程中突然爆发大批量用户登陆失败,最终定位到是http请求报错,报错信息如下:
2021-12-03 10:26:47,722 [http-bio-8080-exec-13] INFO [com.ceapon.fire.ams.utils.HttpsUtil] - Request url:https://iopen.game.oppomobile.com/sdkopen/user/fileIdInfo?fileId=272829701&
1、老的项目,正式环境为Linux环境,使用IBM-jdk,因使用的用户不多,因此客户方没有使用WAS(没有购买WAS)
2、后续扩展开发接口需要调用第三方系统的https接口,2020年3月上线时,该接口可以正常调用第三方的https接口服务;2020年6月第三方系统的证书过期了,后来更换了新的厂商的安全证书,导致原来的接口无法调用第三方的https接口服务。报错为:javax.net.ssl.SSLException:Receivedfatalalert:protocol_vers...
用eclipse创建maven子项目的时候pom文件报错,received fatal alert: protocol_version,协议版本号不对,在网上找了一些博客查找原因,是因为由于TLSv1.1 协议不安全, 出于PCI 安全标准的原因, 从2018-06-18起, maven Sonatype 中央仓库不再支持 TLSv1.1 以及以下的协议版本,原文参见 no longer supp...
spring RestTemplate 发起https请求 Received fatal alert: protocol_version; 异常解决方案
使用spring RestTemplate 发送https请求时候抛出异常解决办法 jdk1.8 避免jdk1.8以下各种其他错误
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://yxt.ngrok.cn/api/n
URL urlstr = new URL(url);
HttpsURLConnection httpClient = (HttpsURLConnection) urlstr.openConnection();
httpClient.setRequestMethod("POST");
最近调用一个供应商接口报错,处理过程;
1:首先TLS 版本问题 ,报错:Received fatal alert: protocol_version
原因:我们是jdk1.7,默认使用 tls1.0; 对方服务器不清楚.