添加WoSign根證書到JDK

因爲某些「衆所周知」的緣由,Azure中國版使用了國內的WoSign證書——和臭名昭著的CNNIC有的一拼。Apple是不信任WoSign證書的,這也是爲何用Mac OS中訪問www.azure.cn時提示證書不被信任的緣由。一樣,JDK也不待見這貨,這就致使在用Java調用Azure中國版API的時候會報「PKIX path building failed」錯誤。java

因爲JDK並不使用Windows操做系統的證書存儲,所以雖然Windows是信任WoSign的,但依然須要手工添加WoSign根證書到JDK的可信任證書存儲中。ui

到http://www。wosign。com/Root/index.htm下載WoSign根證書(這個域名居然是cnblogs的違禁詞...)。spa

添加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

命令格式:.net

keytool -keystore [JAVA_HOME目錄]\jre\lib\security\cacerts -importcert -alias WoSign -file [WoSign根證書文件位置]

看到相似如下的提示,則表示根證書添加成功。code

若是出現錯誤,檢查一下本機的PATH環境變量中是否包含「%JAVA_HOME%\bin」。另外,JDK和JRE安裝時儘可能不要安裝到「Program Files」目錄,這個目錄中的空格常常會引發一些莫名其妙的麻煩。htm

根證書添加成功後,在須要調用Azure中國版API的Java代碼以前加入一行:blog

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

這裏注意第二個參數要和前文中添加根證書時寫的證書存儲位置保持一致,在Windows環境中目錄分隔的反斜線要轉義(\\)。ssl

通過上述步驟後,在Java中調用Azure中國版的API就能夠正常工做了。域名

相關文章
相關標籤/搜索