java - 响应在 Java 中通过 HTTPS 失败

标签 java ssl https

我们在网站上运行爬虫以保持我们的信息是最新的。有些网站是这样的 one允许使用浏览器进行标准导航,但在使用标准 Java 库时它们不发送响应。这是我用来访问主页(索引)页面的代码,

    try
    {
        URL my_url = new URL("https://www.capitallightingfixture.com");

        URLConnection u = my_url.openConnection();

        if ( u instanceof HttpURLConnection )
        {
            HttpURLConnection http_u = (HttpURLConnection)u;

            System.out.println(http_u.getResponseCode());
        }
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }

运行时,该程序会抛出如下错误

javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

根据我对这些错误的了解,当 Java 无法验证服务器提供的证书时会抛出这些错误。但是,正如我上面提到的,Google Chrome 浏览器导航到该页面没有问题,它甚至会验证证书(不会引发安全错误)。

有没有一种方法可以覆盖 Java 并允许它接收响应?

最佳答案

我认为您尝试访问的 ip 使用的是自签名证书。请尝试以下两个链接。

How can I use different certificates on specific connections?

Using Self Signed certificate in java

关于java - 响应在 Java 中通过 HTTPS 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13073285/

相关文章:

java - 使用 scala 处理某些 xml 时出现内存不足错误

ssl - 使用 MUP 和 SSL 获取真实 IP

java - 如何将动态字符串值传递给方法?

ruby-on-rails - rails + SSL : Per controller or application-wide?

ios - 为什么 SecPKCS12Import 会自动将 SecIdentities 添加到钥匙串(keychain)中?

security - 谷歌应用引擎的 ssl 是免费的吗?

https - 用于 HTTPS 的 Airflow SimpleHttpOperator

iis - Azure可以在云端生成证书吗?

java - 在 Java 中将 double 转换为 String

java - 可选的已安装软件包Android