Zkus naimportovat nový certifikát do používaného úložiště, tzn. spustit keytool přesně tak jak jsi psal s novým serverovým certifikátem (server.cer).

Libor

--
Bc. Libor Krzyžanek                         Qbizm technologies, a.s.
Analyst - Developer                         ... the art of software.
____________________________________________________________________
www.qbizm-technologies.cz www.qbizm.cz www.qbizm-services.cz


Tremi-M.Smolny napsal(a):
Kdysi jsme udělali malý komunikační program, který posílá data na zabezpečený server. Nyní ale na serveru změnili certifikát, protože starý přestal platit, a je tu problém. Doposud vše chodilo a jinak se nic nezměnilo (ani verze JRE), proto z toho mám již hlavu celou zlámanou. Upřímně řečeno nechce se mi moc měnit program, protože je to dost dlouho, co se dělal a také změna programu problém nezpůsobila.
Můžete mne někdo navést správným směrem?
Předem děkuji Miloš Hlásí to chybu: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Could not find trusted certificate Pouštěno je to takhle:
rem (s certifikatem serveru ):
"C:\Program Files\Java\j2re1.4.2_09\bin\javaw.exe" -cp .\;.\abc.jar -Djavax.net.ssl.trustStore=.\abccert abc.Application1 Přičemž úložiště certifikátů je vytvořeno takto (obsahuje jen 1 certif. z certifikátu serveru ve formátu x.509):
del abccert
"C:\Program Files\Java\j2re1.4.1_02\bin\keytool" -import -alias abc -file .\server.cer -keystore .\abccert -storepass changeit

Začátek třídy komunikace:
  ResourceBundle res = ResourceBundle.getBundle("abc");
  String resFile = "abc.properties";
HttpURLConnection conn;//pripojeni k serveru
  //priprava datoveho bufferu pro vystup
ByteArrayOutputStream ostream = new ByteArrayOutputStream(12); //pouze pro pocitani
  PrintWriter writer = new PrintWriter(ostream); //primo na server
private boolean prerusenoUzivatelem;//zda uzivatel prerusil danou akci
  private izip.Frame1 frame; //odkaz pro moznost poslani infa na obrazovku
public abcfile(abc.Frame1 frame)
  {      this.frame = frame;  }
//ziskani odkazu na server, pripojeni na nej a nastaveni zakladnich hlavicek
  // KROME hlavicky o delce dat!
  public void connectServer() throws Exception
  {
    URL zakladniURL = new URL(res.getString("ABC_URL"));
    URLConnection conn0 = zakladniURL.openConnection();
    conn = (HttpURLConnection) conn0;
    conn.setDoOutput(true);
    //conn.setRequestMethod("HEAD");
    conn.setRequestProperty("From",res.getString("headerFrom"));
    conn.setRequestProperty("Host",res.getString("headerHost"));
conn.setRequestProperty("Content-Type","multipart/form-data; boundary="+boundary);
    //conn.connect(); nelze pred nastavenim delky dat
  }

Odpovedet emailem