0

Apache Commons VFS を使用してhttp://openexchangerates.org APIからデータを取得しようとしています。SSL 検証を使用しようとしていることを示すエラーが表示されます。これは、Web サイトのプランで利用できるものではありません。https ではなく http を使用するように VFS を「強制」する方法はありますか?

膨大なスタック トレースの関連ポイントを以下に示します。必要に応じて詳細情報を提供できます。

org.apache.commons.vfs2.VFS.getManager().resolveFile("http://openexchangerates.org/api/latest.json?api_id=MY_APP_ID")
org.apache.commons.vfs2.FileSystemException: Could not connect to HTTP server on "openexchangerates.org".

Caused by: 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

Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
4

1 に答える 1

1

Web サイトは https バージョンへのリダイレクトを送信します。したがって、http はサポートされません。http クライアントはこのリダイレクトに自動的に従うため、適切な検証のために構成する必要があります。

これを確認した方法は次のとおりです。

$ curl -v http://openexchangerates.org/api/latest.json?api_id=MY_APP_ID
* Connected to openexchangerates.org (185.24.96.251) port 80 (#0)
> GET /api/latest.json?api_id=MY_APP_ID HTTP/1.1
> User-Agent: curl/7.30.0
> Host: openexchangerates.org
> Accept: */*

< HTTP/1.1 301 Moved Permanently
< Date: Mon, 05 Jan 2015 23:37:18 GMT
< Server: Apache
< Location: https://openexchangerates.org?missing_app_id=true
于 2015-01-05T23:40:40.123 に答える