簡體   English   中英

如何在Java中為apache httpclient庫創建自己的信任管理器以忽略apache httpclient 4.2中的證書?

[英]How to create own trust manager in java for apache httpclient library to ignore certificate in apache httpclient 4.2?

有人可以告訴我如何在Web服務調用期間忽略ssl證書。 我正在呼叫https weburl以獲取api響應,但獲取對等方未通過身份驗證的錯誤。 由於不贊成使用某些方法,因此舊示例無法正常工作,因此有人可以告訴我/提供一些示例代碼,以便我不會收到此錯誤。

我才知道問題出在證書上。 我正在使用第三方API進行數據庫調用,並且他們的域具有ssl證書,即www.dbprovider.com(SSL證書為* .dbprovider.com),並且為我們創建了子域,看起來像myapp.dbprovider.com

所以現在的問題是當我嘗試通過命令擊中時沒有對等證書可用

openssl s_client -ssl3 -showcerts -connect myapp.dbprovider.com:443

openssl s_client -tls1 -showcerts -connect myapp.dbprovider.com:443

有人可以告訴我我現在應該怎么做。 dbprovider站點上是否有任何控件,以便他們可以為我提供一些配置,或者我必須編寫代碼以忽略其證書(但是對於忽略證書,我們沒有獲得其對等證書)

使用自定義SSLSocketFactory ,如此處所述: http : //hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html#d5e512 EasySSLProtocolSocketFactory是一個忽略自簽名證書的EasySSLProtocolSocketFactory

  ProtocolSocketFactory factory = new EasySSLProtocolSocketFactory();
  try {
    URI uri = new URI(config.getBaseUrl());
    int port = uri.getPort();
    if (port == -1) {
      port = 443;
    }
    Protocol easyHttps = new Protocol(uri.getScheme(), factory, port);
    hostConfiguration.setHost(uri.getHost(), port, easyHttps);
  } catch (URISyntaxException e) {
    throw new IOException("could not parse URI " + config.getBaseUrl(), e);
  }

來源: http : //frightanic.com/software-development/self-signed-certificates-in-apache-httpclient/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM