添加WoSign根证书到JDK
Posted 北漂的大尾巴老猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了添加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就可以正常工作了。
以上是关于添加WoSign根证书到JDK的主要内容,如果未能解决你的问题,请参考以下文章
Firefox 58将彻底移除Wosign和StartCom证书
解决win7系统chrome证书错误问题,证书无效,不受信任的网站问题 - windows没有足够信息不能验证该证书