Я пытаюсь подключиться к одному из моих серверов через ssl с помощью Java. Я попробовал много вариантов, вот моя лучшая попытка:
Я генерирую jssecacerts с рекомендацией script: http://blogs.oracle.com/andreas/resource/InstallCert.java с помощью команды: java InstallCert ssl.someUrl.de changeit
после этого я сделал команду второй раз:
Loading KeyStore jssecacerts...
Opening connection to ssl.someUrl.de:443...
Starting SSL handshake...
No errors, certificate is already trusted
Server sent 1 certificate(s):
1 Subject [email protected], CN=plesk, OU=Plesk, O=Parallels, L=Hernd
on, ST=Virginia, C=US
Issuer [email protected], CN=plesk, OU=Plesk, O=Parallels, L=Hernd
on, ST=Virginia, C=US
sha1 f1 0d 2c 54 05 e1 32 19 a0 52 5e e1 81 6c a3 a5 83 0d dd 67
md5 f0 b3 be 5e 5f 6e 90 d1 bc 57 7a b2 81 ce 7d 3d
Enter certificate to add to trusted keystore or 'q' to quit: [1]
Я скопировал файл в каталог по умолчанию, и я загрузил сертификат в Java trustStore
System.setProperty("javax.net.ssl.trustStore", "C:\\Program Files (x86)\\Java\\jre6\\lib\\security\\jssecacerts");
System.setProperty("javax.net.ssl.trustStorePassword","changeit");
Затем я пытаюсь подключиться
URL url = new URL("https://ssl.someUrl.de/");
URLConnection conn = url.openConnection();
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
И я получаю сообщение об ошибке на третьей строке: (Не найдено совпадения имен ssl.someUrl.de)
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching ssl.someUrl.de found
Является ли это причиной сертификата plesk по умолчанию или что-то еще не так?
Настройка: JRE 6.20, Netbeans 6.8, Windows7 64bit