私はサーバーとドメインnodeserver.fvds.ruを持っており、 "暗号化を許可する"というhttpsが設定されています。 Nginxは、すべての要求をローカルjavaプログラムにリダイレクトして、一部のポートをリッスンします。私のブラウザは要求を送ることができます。また、Advanced REST Clientと呼ばれるChromeプラグインを使用してリクエストを送信することもできます。私はこのようなJavaを使用して要求を取得送信しようとした場合でも: sun.security.validator:JavaとHTTPSのトラブル
public static String getResponse(String urlToRead) throws Exception {
StringBuilder result = new StringBuilder();
URL url = new URL(urlToRead);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
result.append(line);
}
rd.close();
return result.toString();
}
public static void main(String[] args) throws Exception
{
System.out.println(getResponse("https://nodeserver.fvds.ru/"));
}
私はスレッド "メイン" javax.net.ssl.SSLHandshakeExceptionに
例外を取得します。 ValidatorException:PKIXパスの構築に失敗しました: sun.security.provider.certpath.SunCertPathBuilderException:できないを に
の使用を避けるべきです。私はそれが自己署名しているとは思わない。 – Tony
申し訳ありません@トニー、私はencryptが何であるか分かりませんでした。その証明書があなたのサーバーJavaバージョンによって信頼されているかどうか知っていますか?それは私のものではないように見える...(https://community.letsencrypt.org/t/will-the-cross-root-cover-trust-by-the-default-list-in-the-jdk- jre/134)。 –
そのサーバーがあなたのJavaバージョンに対して信頼されていない場合は、そのサーバーをトラストストアに追加すると問題が解決するはずです –