忽略Servlet中的SSL证书

提姆

我收到以下异常:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

我做了一些研究,并更改了我的连接代码:

SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {
            public boolean isTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
                return true;
            }
        }).build();

CloseableHttpClient client = HttpClients.custom()
            .setRedirectStrategy(new LaxRedirectStrategy()) 
            .setSslcontext(sslContext)   
            .setConnectionManager(connMgr)
            .build();

到目前为止,这已解决了该问题,我不再遇到异常并且连接正常。

当我在Tomcat中运行的Servlet中使用相同的代码时,问题再次出现。

为什么 ?

沙津

试试下面的代码。

import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

import javax.net.ssl.X509TrustManager;

public class DummyX509TrustManager implements X509TrustManager {

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

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

    @Override
    public void checkClientTrusted(X509Certificate[] paramArrayOfX509Certificate, String paramString)
            throws CertificateException {
    }
};


final TrustManager[] trustAllCerts = new TrustManager[] { new DummyX509TrustManager() };
try {
    SSLContext sslContext= SSLContext.getInstance("SSL"); 
    sslContext.init(null, trustAllCerts, null);

    CloseableHttpClient client = HttpClients.custom()
        .setRedirectStrategy(new LaxRedirectStrategy()) 
        .setSslcontext(sslContext)   
        .setConnectionManager(connMgr)
        .build();
} catch (KeyManagementException e) {
    throw new IOException(e.getMessage());
} catch (NoSuchAlgorithmException e) {
    throw new IOException(e.getMessage());
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

忽略提取中的自签名SSL证书

来自分类常见问题

忽略Apache HttpClient 4.3中的SSL证书

来自分类Dev

NSURLConnection忽略SSL证书?

来自分类Dev

如何在pysimplesoap中忽略SSL证书验证

来自分类Dev

PHP PhantomJS忽略SSL证书

来自分类Dev

如何忽略SSL证书的Java

来自分类Dev

Apache Camel ProducerTemplate忽略SSL证书检查

来自分类Dev

Python 3 urllib忽略SSL证书验证

来自分类Dev

忽略无效的SSL证书Windows 10

来自分类Dev

忽略验证SSL证书python套接字

来自分类Dev

忽略无效的SSL证书Windows 10

来自分类Dev

忽略无效的SSL证书i-phone

来自分类Dev

如何使Jersey忽略ssl证书错误?

来自分类Dev

Java 和 HttpsUrlConnection 忽略 ssl 证书

来自分类Dev

SSL证书代码中的异常

来自分类Dev

Spring Boot中的SSL证书

来自分类Dev

多层场景中的SSL证书

来自分类Dev

SSL证书问题:证书链中的自签名证书

来自分类Dev

devtools :: install_github()-忽略SSL证书验证失败

来自分类Dev

Java SSL选择错误的证书,忽略密钥使用

来自分类Dev

如何使用JavaScript请求库忽略无效的SSL证书?

来自分类Dev

Siddhi http-sink 忽略 ssl 证书错误

来自分类Dev

如何在python 2.6中忽略证书?

来自分类Dev

忽略/关闭Jmeter / Java中的证书验证

来自分类Dev

如何在Django中检索SSL证书?

来自分类Dev

Wakanda中的SSL-中级证书

来自分类Dev

访问Azure Web App中的SSL证书

来自分类Dev

在MQ密钥库中交换SSL证书

来自分类Dev

如何在Django中检索SSL证书?