添加WoSign根证书到JDK

本文介绍了解决在使用Java调用Azure中国版API时遇到的“PKIX path building failed”错误的方法。通过手动添加WoSign根证书到JDK的信任证书存储中,并设置相应的系统属性,可以有效避免证书不受信任的问题。

由于某些“众所周知”的原因,Azure中国版使用了国内的WoSign证书——和臭名昭著的CNNIC有的一拼。Apple是不信任WoSign证书的,这也是为什么用Mac OS中访问www.azure.cn时提示证书不被信任的原因。同样,JDK也不待见这货,这就导致在用Java调用Azure中国版API的时候会报“PKIX path building failed”错误。

由于JDK并不使用Windows操作系统的证书存储,因此虽然Windows是信任WoSign的,但依然需要手工添加WoSign根证书到JDK的可信任证书存储中。

到http://www。wosign。com/Root/index.htm下载WoSign根证书(这个域名竟然是cnblogs的违禁词...)。

添加WoSign根证书到JDK:

keytool -keystore C:\Java8\jdk1.8.0_92\jre\lib\security\cacerts -importcert -alias WoSign -file C:\Users\hunte\Deskto p\WS_CA1_NEW.cer

命令格式:

keytool -keystore [JAVA_HOME目录]\jre\lib\security\cacerts -importcert -alias WoSign -file [WoSign根证书文件位置]

看到类似以下的提示,则表示根证书添加成功。

如果出现错误,检查一下本机的PATH环境变量中是否包含“%JAVA_HOME%\bin”。另外,JDK和JRE安装时尽量不要安装到“Program Files”目录,这个目录中的空格经常会引起一些莫名其妙的麻烦。

根证书添加成功后,在需要调用Azure中国版API的Java代码之前加入一行:

System.setProperty("javax.net.ssl.trustStore","C:\\Java8\\jdk1.8.0_92\\jre\\lib\\security\\cacerts");

这里注意第二个参数要和前文中添加根证书时写的证书存储位置保持一致,在Windows环境中目录分隔的反斜线要转义(\\)。

经过上述步骤后,在Java中调用Azure中国版的API就可以正常工作了。

 

转载于:https://my.oschina.net/u/1770177/blog/837336

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值