[英]Associate a certificate with a https url
我想連接到https://twitter.com/ ,
URL url = new URL("https://twitter.com/");
HttpURLConnection uc1 = (HttpURLConnection) url.openConnection();
我驗證了我的信任庫和密鑰庫(及其密碼)的位置,沒關系。 我將Twitter證書和別名保存在密鑰庫和信任庫中。 我驗證了,它在里面。
我不知道如何將url與我保存的證書鏈接; 我得到錯誤:
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
我該怎么做?
****** UPDATE ********
我已經使用setProperty設置了信任庫和密鑰庫。 當我在控制台上執行keytool -list -keystore .keystore時,我得到
...
twittercert,2歲。 2017年,trustCertEntry,Empreinte du certificat(SHA1):10:F0:40:F2:93:7F:E0:69:2D:C1:B9:8C:8B:32:CC:E0:1E:43:82:52
...
與keytool -list相同
Twitter證書由DigiCert頒發,作為JVM的默認信任庫中的受信任根包含在內,因此您無需進行任何配置。
如果已配置自己的JKS信任庫,則可能配置錯誤。 確保使用System.setProperty
或-D
VM參數為信任庫設置了正確的路徑。
System.setProperty("javax.net.ssl.trustStore", trustStorePath);
System.setProperty("javax.net.ssl.trustStorePassword", trustStorePassword)
還要驗證信任庫是否包含Digicert的根證書
更新后請注意,您發布的Twitter證書的SHA-1指紋不等於今天提取的SHA-1指紋。 可能您有舊副本?
避免將此導入根目錄CA而不是葉證書的信任庫
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.