Tomáš Procházka wrote:
Ahoj, odpovídám na zprávu ze čtvrtka, 17. srpna 2006, kterou Tomáš Procházka napsal v 18:52:16:Jsem se díval a moje dotazy jsou často nezodpovězeny, takže si odpovím sám. Pokud se použije HTTP Client knihovna od Apache, stačí: Protocol authhttps = new Protocol("https", new AuthSSLProtocolSocketFactory( new URL("file:cert/client.jks"), "heslo", new URL("file:cert/server.jks"), "heslo"), 443); Protocol.registerProtocol("https", authhttps); Jak jednoduché.
Ve skutečnosti záleží na tom, jestli chcete SSL socket nebo HTTPS spojení, v druhém případě pak záleží na implementaci HTTP klienta. Standardní javax.net.ssl.HttpsURLConnection se dá nastavovat pomocí různých properties, bohužel z javadocu na to nevedou odkazy, takže se musí chvilku hledat, ale je to popsáno tady: http://java.sun.com/j2se/1.5.0/docs/guide/security/jsse/JSSERefGuide.html#CustomizingStores Já jsem to vždycky řešil napsáním vlastních implementací javax.net.ssl.X509TrustManager a javax.net.ssl.X509KeyManager a jejich nastavením do SSLContextu: SSLContext sctx = SSLContext.getInstance("SSL"); sctx.init(mujKeyManager, mujTrustManager, null); HttpsURLConnection.setDefaultSSLSocketFactory(sctx.getSocketFactory()); pak mám nad vším úplnou kontrolu. Abych se pochlubil, umím už používat jako zdroj certifikátů a klíčů i hardwarová zařízení odpovídající specifikaci PKCS11, konkrétně USB tokeny Rainbow iKey 3000, a perfektně to funguje. Makub -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Supercomputing Center Brno Martin Kuba Institute of Computer Science email: [EMAIL PROTECTED] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 --------------------------------------------------------------
smime.p7s
Description: S/MIME Cryptographic Signature
