![](/img/trans.png)
[英]How to ignore SSL certificate errors in Apache HttpComponents HttpClient 5.1
[英]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.