Java 解决远程调用 ssl 证书认证问题

Java 解决远程调用 ssl 证书认证问题

  • [方法 1](#方法 1)
  • [方法 2](#方法 2)
  • [方法 3](#方法 3)

方法 1

在 jdk 目录导入证书。

首先要下载 服务器 ssl 证书,下载完成之后。把它命名成 Root.cer

后面使用 cmd 命令行 在 jdk 目录导入。

例如 :

jdk 的目录为:D:\JetBranins\Intellij IDEA Community 2023.2.5\jre64\lib\security\cacerts

证书文件的路径为:D:/Root.cer

打开 cmd , 按照自己的文件所在的目录进行导入命令执行

bash 复制代码
keytool -importcert -trustcacertsa -noprompt -file D:/Root.cer -keystore "D:\JetBranins\Intellij IDEA Community 2023.2.5\jre64\lib\security\cacerts" -alias "root-ca" -storepass changeit

接下来会有提示,输入 yes 即可。

最后重启一下电脑。

还是不行的话,就检查 idea 的配置。

Java Compiler 及 Project Structure 下 jdk 的版本是否正确和你目录对应上。

方法 2

假如你的项目是 spring boot ,远程调用是 feign 组件的话,可以通过修改配置文件来跳过 ssl 证书校验。

yaml 文件中加入:

yaml 复制代码
feign:
	httpclient:
		enabled: true
		disableSslValidation: true

方法 3

假如你的项目是 spring boot ,可以加入 跳过证书的 java 文件,其实就是创建一个 bean 对象。

注意:需要把该文件放在 springboot 能扫描到的目录。

java 复制代码
@Bean
public Boolean disablesSLvalidation() throws Exception {
    final SSLContext sslcontext = SSLContext.getInstance("TLS");

    sslcontext.init(null, new TrustManager[]{new X509TrustManager(){
    @Override
    public void checkclientTrusted(X509Certificate[]x509Certificates, string s){
    }
    @Override
    public void checkserverTrusted(X509Certificate[]x509certificates, string s){
    }
    @Override
    public X509Certificate[] getAcceptedIssuers() {
        return new X509Certificate[0];
    }
    }}, null);

    HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
    HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
        public boolean verify(String hqstname, SLLSession session) {
            return true;
        }
    });

    return true;
}

详细文件下载地址:https://download.csdn.net/download/qq_44538738/88655466

相关推荐
青云交6 分钟前
Java 大视界 -- Java 大数据在智慧交通停车场智能管理与车位预测中的应用实践
java·数据采集·数据清洗·智慧交通·停车场智能管理·智能收费系统·车位预测
豐儀麟阁贵12 分钟前
4.4数组的基本操作
java·开发语言·数据结构·算法
Moniane13 分钟前
XMW技术:颠覆未来的创新引擎
开发语言
组合缺一17 分钟前
全球首个支持 IETF JSONPath (RFC 9535) 标准的 Java 框架,Snack4-Jsonpath v4.0.0 发布
java·开发语言·json·jsonpath
无限进步_22 分钟前
【C语言】在矩阵中高效查找数字的算法解析
c语言·开发语言·数据结构·c++·其他·算法·矩阵
智海观潮25 分钟前
JVM垃圾回收器、内存分配与回收策略
java·大数据·jvm
jghhh0127 分钟前
超声波数值模拟与声场传播的MATLAB实现
开发语言·matlab
vx Biye_Design30 分钟前
servlet宠物医院管理系统-计算机毕业设计源码77418
java·vue.js·spring·servlet·eclipse·mybatis
程序员小凯31 分钟前
Spring Boot API文档与自动化测试详解
java·spring boot·后端
照物华33 分钟前
构建优雅的 Spring Boot Starter:Bean 注册与属性绑定的两大机制
java·spring boot