首頁 > Java > java教程 > Java 用戶端如何處理自簽章 SSL 憑證?

Java 用戶端如何處理自簽章 SSL 憑證?

Susan Sarandon
發布: 2024-12-19 13:17:09
原創
314 人瀏覽過

How Can a Java Client Handle Self-Signed SSL Certificates?

Java 用戶端處理自簽章SSL 憑證

當Java 用戶端遇到具有自簽章憑證的伺服器的SSL 連線時,它可能會失敗並出現以下錯誤:

sun.security.validator.ValidatorException: PKIX path building failed
登入後複製

選項1:新增至信任庫

要建立信任,請將自簽名憑證新增至JVM 信任庫:

<JAVA_HOME>/bin/keytool -import -v -trustcacerts \
-alias server-alias -file server.cer \
-keystore cacerts.jks -keypass changeit \
-storepass changeit
登入後複製

選項2:停用憑證驗證(不推薦)

使用下列指令停用憑證驗證code:

// Trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[] {
    new X509TrustManager() {
        @Override
        public void checkClientTrusted(X509Certificate[] certs, String authType) {}
        @Override
        public void checkServerTrusted(X509Certificate[] certs, String authType) {}
        @Override
        public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; }
    }
};

// Install trust manager
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
登入後複製

但是,不建議停用憑證驗證,因為這會使用戶端容易受到中間人攻擊。

以上是Java 用戶端如何處理自簽章 SSL 憑證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板