前言

Java程序进行HTTPS通信发生如下错误:

sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

这是因为访问的服务器的链接是https,系统涉及与第三方支付平台交易,通讯协议为HTTPS单向认证交易时报错,异常信息主要意思为服务器提供的证书不被我们客户端信任。 要解决这个问题需要将安全证书导入到java的cacerts证书库中。

本文以导入vbooking安全证书为例,讲解具体操作步骤。

下载安装证书

在打开的窗口中,

打开的窗口中,点击下一步即可,

在正式编码格式中,选择指定的格式,点击下一步;

指定生成证书文件的名称(此处为vbooking.cer)

库密钥口令

在导入、删除、查看等操作时都需要输入库密钥口令,Java默认口令是:changeit 。

将证书导入java的cacerts证书库

切换到路径:

JAVA 8的路径是:%JAVA_HOME%\jre\lib\security

例如:C:\Program Files\Java\jdk1.8.0_121\jre\lib\security

JAVA 11的路径是:%JAVA_HOME%\lib\security

例如:C:\Program Files\Java\jdk-11.0.13\lib\security

在导入之前可以先将%JAVA_HOME%\jre\lib\security\cacerts文件备份一下

输入命令导入安全证书

keytool -import -alias vbooking -keystore cacerts -file D://vbooking.cer

-alias 指定别名(推荐和证书同名)

-keystore 指定存储文件(此处固定)

-file 指定证书文件全路径(证书文件所在的目录)

注意:当切换到 cacerts 文件所在的目录时,才可指定 -keystore cacerts, 否则应该指定全路径;

全路径命令:

%JAVA_HOME%\bin\keytool.exe -import -alias vbooking -keystore %JAVA_HOME%\jre\lib\security\cacerts -file D://vbooking.cer

查看已经导入的安全证书

keytool -list -keystore cacerts

删除原证书,导入新证书

删除原证书

keytool -delete -alias vbooking -keystore cacerts

导入新证书

keytool -import -alias vbooking -keystore cacerts -file D://vbooking.cer -trustcacerts

查看某一个证书 (vbooking)

keytool -list -keystore cacerts -alias vbooking

鸣谢

参考文章:

https://blog.csdn.net/wangjunjun2008/article/details/37662851

https://blog.csdn.net/weixin_35691921/article/details/102913065

Java导入SSL证书参考手册相关推荐

  1. 群晖导入SSL证书HTTPS访问

    一.申请证书 现在免费的SSL证书服务有很多,由于我的域名是阿里云,所以用的是阿里的免费SSL证书. 阿里云SSL证书申请:https://yundun.console.aliyun.com/ 申请证 ...

  2. java 忽略SSL证书

    ** java 忽略SSL证书 ** 代码如下:(网上借鉴了很多大神的写法,都不能实现,最终使用以下代码亲测可行,侵联删) ```java import org.apache.http.Header; ...

  3. JAVA通过SSL证书创建MS AD账户及设置密码

    近期由于工作需要整理一下自动化的东西,因为公司去年上线了OA,所以公司的入职系统会提交用户的信息到IT部门,最早的做法是入职到了,IT部门收集用户信息在AD中创建对应的用户信息,所以为了提高管理员的工 ...

  4. android导入ssl证书,Android和SSL证书加载

    我正在为Android 2.2 SDK的应用程序,并从通过Java Socket技术应用到另一个(不同的移动设备即是)的一个实例,通过wifi我目前正在发送数据,并能正常工作.我想添加一些加密,所以数 ...

  5. jdk导入ssl证书(信任自签https证书)

    前言 工作对接EMS,给的测试地址是https. 调接口的时候发现ssl证书认证不通过,就猜测是自签的证书了 1. 导出ssl证书 浏览器输入https链接,打开后提示证书不安全. 再打开地址栏左侧不 ...

  6. java导入cer证书_java导入cer证书

    在项目开发中,有时会遇到与SSL安全证书导入打交道的,如何把证书导入java中的cacerts证书库呢? 其实很简单,方法如下: 每一步:进入某个https://www.xxx.com开头的网站,把要 ...

  7. Java管理SSL证书

    SSL证书结构 根证书的生成分为三个部分: 生成根证书的公钥和私钥 构建证书的原始证书,包括公钥.加密算法.生效时间.过期时间等信息. 用根证书私钥对原始证书进行签名,生成合法的根证书. 根证书安装, ...

  8. Java生成SSL证书

    1. 背景 2. 演示环境 3. 命令 4. 创建证书 5. 查看证书 5.1. 显示详细 5.2. 编码打印 6. 导入导出证书 6.1. 导出 6.2. 导入 7. 修改密码 7.1. 修改密钥库 ...

  9. java生成ssl证书和部署

    自签名SSL证书的生成 自签证书虽然提示:不安全.但还是有很多的好处,所以下面先说说自签证书的生成,主要使用Java JDK下的:keytool.exe 2:安装完后,根据实际的路径找到keytool ...

  10. Confluence 6 导入 SSL 证书和问题解决

    有关这些命令的更多信息,请参考 Keytool documentation. 添加根证书(root certificate)到你默认的 Java keystore,可以使用下面的命令行.这个证书被用来 ...

最新文章

  1. 如何用视觉的方法量身高?
  2. 【复杂网络】图模型在欺诈检测应用一点看法
  3. java 反射 成员变量_java使用反射访问成员变量的值示例
  4. 什么是量子计算-超级简单的给你个解释
  5. bzoj4245: [ONTAK2015]OR-XOR
  6. python安全攻防---信息收集---whois查询
  7. matplotlib画图设置线条透明度
  8. Spring Data JPA 从入门到精通~Specification工作中的一些扩展
  9. 《趣学JavaScript——教孩子学编程》——1.5 本章小结
  10. python微控制器编程从零开始下载_Python微控制器编程从零开始(使用MicroPython)...
  11. 实验3-1 求一元二次方程的根 (20 分)
  12. oracle 没有rlwap,[20140723]安装使用anysql.txt
  13. Verilog 教程
  14. 实践项目:图书馆管理系统
  15. 蜂鸣器驱动电路的改进设计
  16. 产品设计-产品框架设计
  17. 微信小程序开通流量主,流量主收入却是个坑
  18. 实现自己的日志打印系统
  19. 景安服务器不稳定,服务器常见问题二
  20. 直播APP开发:熊猫直播求续命,直播的多种玩法

热门文章

  1. 贝塞尔曲线和B样条曲线
  2. layui之 数据表格动态cols(字段)动态变化,实现自定义表头
  3. 为什么新网站上线一个月都没有收录?
  4. 十万个seo_2020年将抛弃10个SEO神话
  5. 【机器人学】机器人开源项目KDL源码学习:(10)KDL中的OOP思想---继承
  6. MoveIt! 学习笔记13 - KDL/IKFAST/TRAC-IK运动学求解器区别
  7. 【福利】百度云2018最新限速破解软件
  8. 多目标优化系列(七)SPEA2
  9. 如何检查你的MAC是不是原封正品
  10. python 下载图片 写硬盘 慢_天啦噜!知道硬盘很慢,但没想到比 CPU Cache 慢 10000000 倍...