1

我们在网站上运行爬虫以使我们的信息保持最新。像这样的一些网站允许使用浏览器进行标准导航,但在使用标准 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 path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

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

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

4

1 回答 1

1

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

如何在特定连接上使用不同的证书?

在java中使用自签名证书

于 2012-10-25T17:01:49.447 回答