当前位置: 首页 > 面试题库 >

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

邵星河
2023-03-14
问题内容

我正在尝试打印一个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

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

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


问题答案:

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

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


这将消除运行时为保护用户免受提供恶意软件的欺骗站点的任何尝试。如果这 真的 是您想要的…



 类似资料:
  • 问题内容: Apache Http客户端。您可以在此处查看相关代码: 这是每个人都用来忽略SSL证书错误的方法(仅将其设置为登台,它将不会在生产中使用)。但是,我仍然收到以下异常/堆栈跟踪: 任何提示都很好。如果我做的TrustManager错误,或者我应该以不同的方式执行HTTP Post方法,则可以选择两种方式。 谢谢! 问题答案: 首先,不要 忽略 证书错误。与他们打交道。忽略证书错误将打开

  • 主要内容:自签名证书错误,Maven依赖关系,接受自签名证书通常,开发人员将在本地机器上或项目的开发阶段使用自签名证书。 默认情况下,HttpClient(和Web浏览器)不会接受不可信的连接。 但是,可以配置以允许不可信的自签名证书。 注意:这是一个可能存在安全风险,因为您将其用于生产时,基本上会禁用所有的认证检查,这可通导致受到攻击。 在这个例子中,我们演示了如何忽略Apache HttpClient 4.5中的SSL / TLS证书错误。 自签名证书

  • 问题内容: 我有通过virtualbox在Windows上运行的boot2docker 1.4.1。我支持MITM https证书的代理。我通过在中添加以下行来配置代理: 然而,当我跑我得到 请帮助我找出忽略证书错误的正确方法。谢谢! 问题答案: 编辑 看起来新的docker仅适用于Windows 10的某些版本 。如果您仍然停留在Windows 7上,我已经更新了以下内容,以反映安装最新版本的d

  • 问题内容: URL myUrl = new URL(“https://www....."); 网站的SSL证书已过期。如何避免它并使URL()工作? 问题答案: 您应该构建一个包装默认信任管理器的,捕获并忽略它。 注意:如此答案中所述,此设置是否安全在很大程度上取决于实现。特别是,它依赖于在正确检查所有其他内容之后最后执行的日期验证。 遵循这些原则的东西应该起作用: 当证书有问题时,信任管理器将抛