首先,我知道這是之前被問過的,但我嘗試了所提出的解決方案並沒有得到任何結果。Ssl握手失敗,無法找到要求的目標的有效證書路徑
我想在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,沒有sucess。試圖調試,雖然我不明白這一點,但在這個http://docs.oracle.com/javase/1.5.0/docs/guide/security/jsse/ReadDebug.html的幫助下,我明白了,相應地,直到尋找可信證書的部分。已經檢查過,如果我將證書添加到jre的正確版本並仍然存在相同問題。
問題是否可以通過網站所有者解決?只是因爲這不會只在我的電腦上運行,所以在運行的每臺電腦上再次配置一切都不方便。
在我的代碼開始時,可以在運行文件的PC中配置它嗎? –
是的,這是可能的,但它提供所需的信任存儲與您的程序,並將其設置在java命令行更容易。無論如何要運行你的程序,你必須有java命令來執行。所以信任存儲將只是啓動腳本中的兩個參數。只有一個擔心:信任商店的密碼將在該行中爲開放文本。但是,如果您只需從一個網站獲得一個公共證書,則不是這種情況。 – Vadim
我剛剛添加了另一個鏈接供您閱讀。 – Vadim