2013-11-20 49 views
0

在Ubuntu(12.04.3 LTS)上使用openjdk-7-jre-headless(1.7.0_25)時,我無法建立與https://api.runkeeper.com/(由GeoTrust發佈)的SSL/TLS連接:OpenJDK拋出「證書鏈接錯誤」

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: Certificate chaining error 

其他服務器(例如https://foursquare.com/,由DigiCert發行)做工精細,如果我用java-7甲骨文(1.7.0_45)是沒有問題的,無論是。

我複製/usr/lib/jvm/java-7-oracle/jre/lib/security/cacerts/etc/ssl/certs/java/cacerts,但得到相同的錯誤(如果我刪除後面的文件,沒有SSL連接工作,所以文件正在使用)。其他想法?

回答

2

可能是證書鏈亂序出現。 我已經看過幾次自簽名證書 - 也許這些供應商有相同的問題。

許多軟件(例如所有主流瀏覽器AFAIK)通過對證書鏈進行排序來處理此問題,然後將其發送到Validator。

我寫了一篇關於如何在Android上處理這個問題的博文,但是相同的代碼應該可以與openjdk一起使用。

http://blog.chariotsolutions.com/2013/01/https-with-client-certificates-on.html

+0

api.runkeeper.com實際上有證書下令不正確。我猜Java可以在7u40之前處理這個問題,這就是爲什麼這個問題不會在Oracle的JVM中重現的原因。測試自定義X509TrustManager解決方法... – ejain