安全证书导入到java中的cacerts证书库

本文介绍了一种解决公司NEXT、TIMS应用中出现的javax.net.ssl.SSLHandshakeException和sun.security.provider.certpath.SunCertPathBuilderException异常的方法。通过将特定证书导入Java的cacerts证书库,可以有效避免这类安全证书验证错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

一个很简单的富客户端到WEB服务器的连接,基本都能够正常建立连接,唯独公司NEXT、TIMS总是报javax.net.ssl.SSLHandshakeException和sun.security.provider.certpath.SunCertPathBuilderException的异常,网上转了转,找到几篇前辈的文章,摘下点重点以便以后继续剽与窃。

在项目开发中,有时会遇到与SSL安全证书导入打交道,如何把证书导入java的cacerts证书库?简单的用NEXT做个演示:

第一步:IE打开https://next.xxxcorp.cn,把要导入java证书库的证书下载
在该网页安全警报弹出窗口上查看证书--详细信息--复制到文件
会弹出一个证书导出向导对话框,按提示一直下一步直到完成。
我把证书保存在C盘,名字为NEXT_CertKey.cer。

第二步:将上面导出的证书导入java中的cacerts证书库
cmd进入C:\Program Files\Java\jdk1.5.0_06\jre\lib\security目录
敲入如下命令回车执行

Java代码 收藏代码
keytool -import -alias cacerts
-keystore C:\Program Files\Java\jdk1.5.0_06\jre\lib\security\cacerts
-file C:\NEXT_CertKey.cer
-trustcacerts

    此时命令行会提示你输入cacerts证书库密码, 
    java中cacerts证书库默认密码为changeit, 
    Y确认即可,OK,认证已添加至keystore。 

附:URLConnection、URL
Java代码 收藏代码
try {
URL url;
url = new URL("https://next.xxxcorp.cn");
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);

  BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));   
  String input = null;   
  while ((input = reader.readLine()) != null) {   
       System.out.println(input);   
  }   
  reader.close();   
  urlConnection.disconnect();   

} catch (IOException e) {
e.printStackTrace();
}

转自:
http://lpali.iteye.com/blog/918265

转载于:https://blog.51cto.com/12447922/2060079

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值