Я пытаюсь подключиться к одному из моих серверов через ssl, используя Java. Я перепробовал много вариантов, вот моя лучшая попытка:
Я создаю jssecacerts с помощью рекомендуемого сценария: 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()));
И я получаю ошибку в 3-й строке: (Не найдено совпадения имени 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