首页 > 编程语言 >Java自签名证书的信任处理

Java自签名证书的信任处理

时间:2023-07-09 22:23:23浏览次数:52  
标签:opt java 证书 cacerts 签名 Java com

一、概要

1. 问题的由来

该问题是由于Java访问的域名是https且使用了自签名证书,Java客户端无法验证证书的合法性,进而报出异常。

该问题有以下解决思路:

a. 在Java客户端忽略证书的校验,这种方式适用于自己掌握Code的情况,且客户端服务端处于互相信任的环境中;

b. 将服务端的自签名证书添加到客户端的信任列表中,本文选择该种方案。

二、配置

1. 获取服务证书

openssl s_client -showcerts -connect www.example.com:443 </dev/null 2>/dev/null | openssl x509 -outform PEM >www.example.com.pem

2. 备份Java的cacerts

该步骤并非必须的,但是该步骤可以防止Java升级导致的keystore丢失。

(1) 创建备份目录

sudo mkdir -p /var/opt/java

(2) 备份

sudo cp /usr/lib/jvm/java-11-openjdk-11.0.19.0.7-4.el9.x86_64/lib/security/cacerts /var/opt/java

3. 导入证书

keytool -import -alias $ALIAS -keystore /var/opt/java/cacerts -file www.example.com.pem

alias: 当前导入证书的别名,比如这里可以取example;

keystore: 是JAVA的cacerts路径,这里我们使用备份的cacerts路径;

file: 是需要导入的证书路径。

4. 修改启动参数

在java启动时,添加以下参数:

-Djavax.net.ssl.trustStore=/var/opt/java/cacerts #Keystore的路径
-Djavax.net.ssl.trustStorePassword=changeit #Keystore的密码

三、参考

https://docs.cloudbees.com/docs/cloudbees-ci-kb/latest/client-and-managed-controllers/pkix-path-building-failed-error-message

https://stackoverflow.com/questions/24563694/jenkins-unable-to-find-valid-certification-path-to-requested-target-error-whil

https://magicmonster.com/kb/prg/java/ssl/pkix_path_building_failed/

标签:opt,java,证书,cacerts,签名,Java,com
From: https://www.cnblogs.com/eagle6688/p/17539402.html

相关文章

  • 【java】数组的常用操作
    sortstaticvoidsort(int[]a):将a数组按照从小到大进行排序staticvoidsort(int[]a,intfromIndex,inttoIndex):将a数组的[fromIndex,toIndex)部分按照升序排列staticvoidsort(Object[]a):根据元素的自然顺序对指定对象数组按升序进行排序。static<T>voidsort(T......
  • 暗黑2能用Java开发?还能生成APP?
    最近烧哥发现个宝藏项目,竟然用Java开发了暗黑2出来。众所周知,暗黑2是暴雪开发的一款经典游戏,距今虽有20多年,仍然有很多粉丝。粉丝延续热情的方式有很多,一种是做Mod,比如魔电,对怪物、技能、物品、场景、甚至游戏机制都有大改,目前还在定期更新,并有战网提供。另一种是纯怀旧,用另......
  • Java虚拟机(JVM):第四幕:自动内存管理 - 经典垃圾收集器
    前言:如果说收集算法是内存回收的方法论,那么垃圾收集器则是内存回收的实践者。整哥Java堆:FullGC。1、Serial收集器:最基础、历史最悠久的收集器,这是一个单线程工作的收集器。2、ParNew收集器:是Serial收集器的多线程并行版本,可以说是跟Serial完全一样。CMS收集......
  • 开心档之Java 测验
    目录Java测验 Java测验Java测验技术文档Java测验是一种衡量Java编程水平的测试,可以通过一系列问题和编程任务来测试Java开发人员的技能水平和理解程度。Java测验可以用于聘用程序员、衡量编程实践水平和掌握Java的程度。Java测验通常涵盖以下主题:基本语法-测试Ja......
  • Java - JavaWeb - Concepts
    1.Servlet配置1.1.配置父级项目配置好IntellijIDEA/MAVEN之后, 创建一个新项目com.crevew.javaweb-02-servlet,然后删除所有的SRC(方便接下来创建servlet模块);然后更新最外面的父pom.xml,加上<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.......
  • String内存模型和Java常用方法
    一、String内存模型1、直接赋值创建string对象内存原理:StringTable(串池):字符串常量池,用来存储字符串,只能是在直接赋值中使用才会存在串池当中(JDK7前串池是在方法区里面,StringTable(串池)在JDK7版本开始从方法区中挪到了堆内存,但是运行机制没有发生变化)eg:首先mian方法进栈,创建变......
  • python获取小红书web_session,以及解决x-s签名验证(2023-07-09)
    一、web_session请求接口:https://edith.xiaohongshu.com/api/sns/web/v1/login/activate请求类型:post提交数据:{}这儿是两个字符{},笔者最初提交None,总得不到结果,chromeF12才发现需要这两个字符。二、签名验证x-s 该请求需要x-s签名验证,签名代码如下:a1="186d30820a4......
  • 面试类-Java基础 (三)
    String是Java基本数据类型吗?可以被继承吗?String是Java基本数据类型吗?不是。Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;除了基本类型(primitivetype),剩下的都是引用类型(referencetype)。String是一个比较特殊的引用数据类型......
  • 【java】虚拟机的内存划分
    为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。  区域名称作用程序计数器程序计数器是CPU中的寄存器,它包含每一个线程下一条要执行的指令的地址本地方法栈当程序中调用了native的本地方法时,本地方法执行......
  • 【java】输入输出
    输出换行输出语句:输出内容后进行换行,格式如下:System.out.println(输出内容);//输出内容之后,紧接着换行不换行输出语句:输出内容后不换行,格式如下System.out.print(输出内容);////输出内容之后不换行 示例代码:publicclassTestPrintlnAndPrint{publicstaticvoid......