1

情報を最新の状態に保つために、Webサイトでクローラーを実行しています。このようなWebサイトの中には、ブラウザでの標準的なナビゲーションを許可しているものもありますが、標準の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がサーバーから提供された証明書を検証できない場合にエラーがスローされます。ただし、前述したように、Google Chromeはページへの移動に問題はなく、証明書も検証します(セキュリティエラーはスローされません)。

Javaをオーバーライドして、とにかく応答を受信できるようにする方法はありますか?

4

1 に答える 1

1

アクセスしようとしている IP は、自己署名証明書を使用していると思います。次の 2 つのリンクを試してください。

特定の接続で異なる証明書を使用するにはどうすればよいですか?

Java での自己署名証明書の使用

于 2012-10-25T17:01:49.447 に答える