まず、これは以前に尋ねられたことですが、提案されたソリューションを試してみました。Sslハンドシェイクが失敗し、要求されたターゲットへの有効な証明書パスが見つかりません
私は、Webサイトに接続し、そこでホストされているテキストファイルから読み込む、単純なプログラムをjavaで開発しようとしています。最初は、警告を受け取らずにFirefoxを使ってウェブサイトを開くことができないため、証明書が問題を引き起こすと思いました。 Internet Explorerは問題を作成しません。
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.*;
public class insig
{
public static void main(String[] args) throws IOException
{
URL fpath = new URL("website/test.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fpath.openStream()));
String Reader = null;
while((Reader = br.readLine()) != null)
{
System.out.println(Reader);
}
}
}
私が試した最初のものは、ソリューションはありません成功事例ので、Java: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetに発表されました:コードは以下の通りです。デバッグしようとしましたが、私はこれを本当にうまく理解しませんが、http://docs.oracle.com/javase/1.5.0/docs/guide/security/jsse/ReadDebug.htmlの助けを借りて、信頼できる証明書を見つけるまでに何かが行われることを理解できました。 jreの正しいバージョンに証明書を追加したのかどうかは既に確認されていますが、それでも同じ問題があります。
ウェブサイトの所有者は問題を解決できますか?これは私のPCだけでは実行されないからです。そのため、実行中のすべてのPCですべてを再度設定するのは便利ではありません。
私のコードの始めに、ファイルが実行されているPCでこれを設定できますか? –
はい、可能ですが、プログラムに必要なトラストストアを提供してjavaコマンドラインに設定するほうがずっと簡単です。とにかくあなたのプログラムを実行するには、javaコマンドを実行する必要があります。したがって、トラストストアは開始スクリプトの2つのパラメータにすぎません。懸念事項は1つだけです。パスワードを保存するためのパスワードは、その行に空白文字で表示されます。しかし、1つのWebサイトから公開証明書が1つだけ必要な場合は、そうではありません。 – Vadim
あなたが読むための別のリンクを追加しました。 – Vadim