https 調用驗證失敗 peer not authenticated


https 調用驗證失敗 peer not authenticated

報錯日志:

   Caused by: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
        at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:431)
        at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
        at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572)
        at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
        at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
        at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640)
        at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)

原因:

     簽名驗證失敗,可能對方是內部 https,對應的簽名並不是線上機構簽發的.

操作:

1. 設置 client 不驗證簽名. 可以搜索不同的http 實現

          https.setHostnameVerifier(DO_NOT_VERIFY);

2. 配置私自簽發證書對應的根證書. 這種方案是最安全的. 特別適合客戶端的加密訪問.

      2.1  如果是從 startSsl 簽發的免費證書, 需要在本地導入startssl 的ca證書 (有些是內置的,有些沒有,也不會去下載) startSsl 是免費的.

2.2 如果是自建的證書,就需要在本地導入自建的 ca 證書,用於簽證.

3. 改用 http 接口

       

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM