0


解决forest低版本请求不安全的网站出现SSL认证不通过问题

文章目录

前言

先说结论:无法解决

那既然无法解决,为啥还要写这样一篇文章呢,是因为这个问题我弄了一天多,我觉得有必要记录一下;

同时后面也是使用了hutool 的http作为代替方案,也是因为在hutool的官网没有特意标明,所以这也是一个理由吧!

解决问题的步骤

简单点说,就是公司系统,只允许使用forest1.5.24版本,不允许升级版本,所以在请求接口的时候遇到了ssl认证不通过的问题,即:

image-20230710143913008

1、当然是百度

image-20230710144447525

我的期望是,在forest的基础上配置,一搜,有绕过ssl的,但丝毫未提过forest,所以直接放弃;

2、官网

forest官网

在官网中我们可以看见有关于SSL的配置,但最低版本是1.5.28,死马当活马医,配置自定义的SSLSocketFactory,然后使用

@SSLSocketFactoryBuilder(MySSLSocketFactoryBuilder.class)

image-20230710145744994

然后就没然后了,如果有用我上面也不会说解决不了了,这个只是针对后续版本的

3、看源码

查看源码得知,它提供了一个单向的绕过ssl认证的方法,既:

image-20230710150050353

然后也没然后,没卵用,我可以确定我姿势没问题

4、GPT

GPT信息停滞在2021,所以在它的认知中,最新版本是1.5.12版本,不知道是不是这个原因,它提供了一大堆根本不存在的方法和错误姿势给我,怀疑人生:

image-20230710150540398

image-20230710150549473

吐了,直接抛弃

5、直接去gitee上看源代码的问题

image-20230710150851347

大家可以自行去看看,我都试过了,无解,没卵用,然后我自己也提出一个问题以及私信:

image-20230710150939220

image-20230710152114821

forest的作者直接推荐升级版本,可问题就是不能升级哦,到这我就直接抛弃使用forest,采用别的方式

解决一

如果你的版本是可以升级的,无需考虑兼容性的话,建议直接升级到>=1.5.26版本,原因在1.5.26版本之后就默认自动绕过SSL验证了:

image-20230710151234512

解决二

使用别的Http框架,有apache,原生的、feign、hutool、。。。,我使用的是hutool的,就图方便:

基础操作官网都有,使用HttpUtil或者HttpRequest,这里需要指明的是下载文件,带参数,带请求头,官网没指出,其实也是使用

HttpRequest

:

importcn.hutool.core.io.FileUtil;importcn.hutool.http.HttpRequest;importcn.hutool.http.HttpResponse;importjava.io.File;publicclassFileDownloadExample{publicstaticvoidmain(String[] args){HttpRequest request =HttpRequest.get("文件的URL");
        request.header("Header1","Value1");// 设置请求头
        request.form("param1","value1");// 设置参数HttpResponse response = request.execute();if(response.isOk()){byte[] fileBytes = response.bodyBytes();File file =newFile("保存路径");FileUtil.writeBytes(fileBytes, file);// 文件下载完成,可以使用file对象进行操作System.out.println("文件保存成功:"+ file.getAbsolutePath());}else{System.out.println("请求失败,状态码:"+ response.getStatus());}}}
标签: 安全 ssl java

本文转载自: https://blog.csdn.net/qq_65377318/article/details/131640024
版权归原作者 识时务者J 所有, 如有侵权,请联系我们删除。

“解决forest低版本请求不安全的网站出现SSL认证不通过问题”的评论:

还没有评论