简体   繁体   English

Apache HttpClient错误:javax.net.ssl.SSLPeerUnverifiedException:对等方未通过身份验证

[英]Apache HttpClient Error: javax.net.ssl.SSLPeerUnverifiedException: Peer Not Authenticated

I'm trying to configure org.apache.http.client.HttpClient to work with https. 我正在尝试将org.apache.http.client.HttpClient配置为使用https。 This is the client configuration: 这是客户端配置:

TrustManager[] trustManagers = new TrustManager[] { new DummyTrustManager() };

SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(keyManagers, trustManagers, null);

SSLSocketFactory sf = new SSLSocketFactory(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

Scheme scheme = new Scheme("https", 443, sf);
SchemeRegistry registry = new SchemeRegistry();
registry.register(scheme);

ThreadSafeClientConnManager cm = new ThreadSafeClientConnManager(registry);

DefaultHttpClient client = new DefaultHttpClient(cm, httpParameters);

This is the code of DummyTrustManager : 这是DummyTrustManager的代码:

public static class DummyTrustManager implements X509TrustManager {

    @Override
    public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
    }

    @Override
    public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
    }

    @Override
    public X509Certificate[] getAcceptedIssuers() {
        return null;
    }
}

And when I send request, I get 当我发送请求时,我得到

 `javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated`

What could be the problem? 可能是什么问题呢?

You also need to adjust the TrustStrategy : 您还需要调整TrustStrategy

TrustStrategy acceptingTrustStrategy = new TrustStrategy() {
    @Override
    public boolean isTrusted(X509Certificate[] certificate, String authType) {
        return true;
    }
};
SSLSocketFactory sf = new SSLSocketFactory(acceptingTrustStrategy, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
...

see a full example at: http://www.baeldung.com/httpclient-ssl 请参阅以下完整示例: http : //www.baeldung.com/httpclient-ssl

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 javax.net.ssl.SSLPeerUnverifiedException:未在Tomcat中使用Apache HttpClient对等体进行身份验证 - javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated in Tomcat with Apache HttpClient 自签名证书的HttpClient 4.1.x错误(javax.net.ssl.SSLPeerUnverifiedException:对等未认证) - HttpClient 4.1.x error for self signed certificate (javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated ) HttpClient javax.net.ssl.SSLPeerUnverifiedException:peer在时移时未经过身份验证? - HttpClient javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated when time shifted? Java 8 javax.net.ssl.SSLPeerUnverifiedException:peer未经过身份验证,但不是Java 7 - Java 8 javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated, but not Java 7 javax.net.ssl.SSLPeerUnverifiedException:在netbeans中未对等身份验证 - javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated in netbeans JDK 11. javax.net.ssl.SSLPeerUnverifiedException:对等方未通过身份验证 - JDK 11. javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated Java - javax.net.ssl.SSLPeerUnverifiedException:peer未经过身份验证 - Java - javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated 异常:javax.net.ssl.SSLPeerUnverifiedException:对等端未经过身份验证 - Exception : javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated javax.net.ssl.SSLPeerUnverifiedException:仅在生产服务器上未对等身份验证 - javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated only on production server tomcat6 apache cxf javax.net.ssl.SSLPeerUnverifiedException:对等方未通过身份验证 - tomcat6 apache cxf javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM