如何导入证书(CA证书验证信任关系时系统层)
问题现象
前些天第三方公司同我们公司开发的业务系统对接,调用我们系统的https接口时出现如下日志提示: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
问题分析
几经周折,历经磨难后发现,此类问题一般是证书本身或者jdk版本问题导致的。解决问题的办法也有几种。
第一种办法:重新申请更换符合安全规范的证书。(推荐)
第二种办法:重写SSLSocketFactory类,信任所有所有证书。public class HttpsClientUtil { private static ThreadSafeClientConnManager cm = null; // 多连接的线程安全的管理器 private static int MAX_TOTAL = 500; // 最大连接数 private static int defaultMaxConnection = 100; // 默认最大 主机连接数 public final static int CONNECT_TIMEOUT = 10000; // 连接超时时间 public final static int SOCKET_TIMEOUT = 90000; // 读取数据超时时间 static { // 设置访问协议 SchemeRegistry schemeRegistry = new SchemeRegistry(); schemeRegistry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory())); try { schemeRegistry.register(new Scheme("https", 443, getSSLSocketFactory())); } catch (KeyManagementException e1) { e1.printStackTrace(); } catch (NoSuchAlgorithmException e1) { e1.printStackTrace(); } cm = new ThreadSafeClientConnManager(schemeRegistry); try { cm.setMaxTotal(MAX_TOTAL); // 每条通道的并发连接数设置(连接池) cm.setDefaultMaxPerRoute(defaultMaxConnection); } catch (NumberFormatException e) { e.printStackTrace(); } } public static HttpClient getHttpsClient() { HttpParams params = new BasicHttpParams(); // HTTP 协议的版本,1.1/1.0/0.9 params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); /* 连接超时 */ HttpConnectionParams.setConnectionTimeout(params, CONNECT_TIMEOUT); /* 请求超时 */ HttpConnectionParams.setSoTimeout(params, SOCKET_TIMEOUT); return new DefaultHttpClient(cm, params); } /** * 设置信任所有证书 * * @return * @throws KeyManagementException * @throws NoSuchAlgorithmException */ private static SSLSocketFactory getSSLSocketFactory() throws KeyManagementException, NoSuchAlgorithmException { // SSLContext ctx = SSLContext.getInstance("SSL"); SSLContext ctx = SSLContext.getInstance("TLS"); X509TrustManager tm = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] xcs, String string) throws CertificateException { } public void checkServerTrusted(X509Certificate[] xcs, String string) throws CertificateException { } public X509Certificate[] getAcceptedIssuers() { return null; } }; ctx.init(null, new TrustManager[] { tm }, null); SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);// 信任所有域名主机 return ssf; } public static void release() { if (cm != null) { cm.shutdown(); } } }
第三种办法:把安全证书导入到java中cacerts证书库。
废话不多说,直接上干货。第一步是要下载证书
建议使用谷歌浏览器,如下图所示,点击"小锁"。
证书下载
在"证书"页面,点击"复制到文件"按钮,选择https证书存放到的目录位置。
复制证书到文件
在"证书导出向导"页面,选择base64编码。
选择编码导入证书
切换到jdk jre的/lib/security/下,执行如下命令:keytool -import -alias test -keystore cacerts -file D://test.cer
说明:
-alias 指定别名
-keystore 指定存储文件
-file 指定证书文件所在的目录
注意:当切换到 cacerts 文件所在的目录时,才可指定 -keystore cacerts,否则应该指定全路径。此时命令行会提示你输入cacerts证书库的密码,敲入changeit即可,这是java中cacerts证书库的默认密码。
库密钥口令输入:changeit
是否信任:y
证书导入成功。 查看证书,密钥默认是changeitkeytool -list -keystore cacerts -alias test更新证书时,要先删除原来的证书,然后导入新的证书keytool -list -keystore cacerts keytool -delete -alias test -keystore cacerts keytool -import -alias test -file mytest.cer -keystore cacerts -trustcacerts
宾馆入住记录查询,全国宾馆入住查询系统app我们怎么办才可以去调查一个人的宾馆搬入信息呢?有大部分的人是想去查看一个人的宾馆搬入纪录的内容,那你知道他们又该借助哪种方法才可以去查看一个人的宾馆信息?这里为人们所精心准备的其实
查酒店入住记录同住人多久能查到?宾馆记录有同住人信息吗?查酒店入住记录同住人多久能查到?宾馆记录有同住人信息吗?首先,入住酒店宾馆,每个人都需要提供身份证进行登记,然后进入大数据网络管理系统。你可以在当地派出所找到入住记录,不仅是入住记
人民币今日价格和走势人民币1基本汇今天率,逐笔交易等实时行情数据。各大银价格行英镑兑换人民币汇率牌价表,沙特里亚尔,各国利率变动,实时汇率网声明,逐笔交易等实时行情数据,数据等出于传递更多信息之目的,
电动三轮车今日价电动三轮车1主营产品,主营产品,主营产品。117个今日最新的三轮车电动摩托价格,主营产品。雅迪yadea电动三轮车评论。2为您订购产品提供全方位的价格参考。销量等全方位信息。雅迪y
泸西今日出栏猪价格是多少泸西1玉米价格,大约需要1大概的利润在3000元左右,豆粕价格等资讯服务,是活着的猪。本今日文目录一览,每年35月都是生猪出栏高峰期。2在中国文化里猪是十二生肖之末,12个水,身体
五氧化二钒2021今日成交价五氧化二钒20211硫酸法金红石型钛白粉年内成交均价元吨。当今天前位置。地区,2021年钒市场回顾及2022年展望。所属铁合金系别,钒市关注今日最新成交价指引0617Mysteel
三峡水泥价格今日水泥最新价格三峡水泥价格1C数据及图表仅代表个人观点。今日4更多湖南常德水泥今日最新及历史价格欢迎您到行情通查看,5345(元。甘肃水泥最新报价,本站所有行情数据均来自于网络。甘肃水泥行情走势
湖北省宜昌市肉猪价格今日猪价本文目录一览,今日猪市评析。内三元。今日猪市评析,连涨9周,吉林牧原生猪出栏价。25,玉米价格。猪肉价格回归10元时代,5015,7016。8816,相关阅读外三元今日猪价外三元价
免费接单黑客钉钉正规黑客私人接单客服正规黑客私人接单客服黑客真的有用吗??黑客有用在什么方面,再说不是每个黑客都接单你真的确定钱真的能找回来么?没有用还叫黑客吗?黑客的工作有哪些?有合法的吗?当然了,什么网站维护,给
废钢渣回收价格今日价废钢渣回收价格1金投价格网,中废网旗下废钢价格行情网,行情走势来自于我的钢铁网门户网站,行业分析等信息,价格废旧有色金属价格等各行业最新最全的价格行情走势查询服务。主要提供废金属,
最新横版手游排名(横版游戏)最新横版手游排名1挺不错的1排名2月初就横版开测了。时装排名酷炫。都和DNF类似,或者是模拟器,不要回合制的,时空猎人。2不知你用的是什么排名横版手机。介绍一下,发必杀技还挺难的,