在Java中请求URL时忽略证书错误

Rya*_*ins 2 java ssl-certificate

我正在尝试打印一个URL(根本没有涉及浏览器),但URL目前正在抛出以下内容:

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
Run Code Online (Sandbox Code Playgroud)

我正在使用JEditorPane的setPage方法调用URL,该方法仅将URL作为参数.假设我无法更改任何服务器端,我仍然需要访问此资源,我将如何忽略证书错误(或其他让我达到目标的东西)?

通过浏览器访问此URL告诉我该网站不受信任,并询问我是否要继续.

eri*_*son 9

扩展JEditorPane以覆盖该getStream()方法.

在那个方法里面,你可以打开一个URLConnection.测试它是否是HttpsURLConnection.如果是,请使用不执行任何检查的自定义初始化自己的SSLContext.获取上下文并将其设置为连接的套接字工厂.然后从连接返回.X509TrustManager SSLSocketFactoryInputStream

这将破坏运行时保护用户免受恶意软件恶意软件攻击的任何尝试.如果这真的是你想要的......