Похоже, что сертификат сервера, к которому вы пытаетесь подключиться, не соответствует его имени хоста.
Когда клиент HTTPS подключается к серверу, он проверяет, совпадает ли имя хоста в сертификате с именем хоста сервера. Недостаточно доверять сертификату, он должен совпадать с сервером, с которым вы также хотите общаться. (Как аналогия, даже если вы доверяете паспорту, чтобы он был легитимным, вы все равно должны проверить, что это тот, для кого вы хотите поговорить, а не какой-то паспорт, которому вы доверяете, чтобы быть легитимным.)
В HTTP это делается путем проверки того, что:
сертификат содержит запись альтернативного имени субъекта DNS (это стандартное расширение), соответствующую имени хоста;
в противном случае последний CN вашего выделенного имени субъекта (если хотите, это основное имя) совпадает с именем хоста. (См. RFC 2818.)
Трудно сказать, каково альтернативное имя субъекта, не имея сертификата (хотя, если вы подключитесь к своему браузеру и проверьте его содержимое более подробно, вы сможете увидеть его).
Видимое имя субъекта выглядит так:
EMAILADDRESS=info@plesk.com, CN=plesk, OU=Plesk, O=Parallels, L=Herndon, ST=Virginia, C=US
(Таким образом, вместо CN = plesk должно быть указано CN = ssl.someUrl.de, если у вас уже нет альтернативного имени субъекта с DNS: ssl.someUrl.de; я полагаю, что вы не т.)
Вы можете обойти проверку имени хоста, используя HttpsURLConnection.setHostnameVerifier (..) . Не должно быть слишком сложно написать собственный HostnameVerifier, который обходит проверку, хотя я бы рекомендовал делать это только тогда, когда сертификат конкретно касается этого сертификата. Вы должны получить это, используя аргумент SSLSession и его метод getPeerCertificates ().
(Кроме того, вам не нужно устанавливать свойства javax.net.ssl. * Так, как вы это сделали, так как вы все равно используете значения по умолчанию.)
В качестве альтернативы, если у вас есть контроль над сервером, к которому вы подключаетесь, и его сертификатом, вы можете создать его сертификат, который соответствует приведенным выше правилам именования (CN должно быть достаточно, хотя альтернативное имя субъекта является улучшением). Если самоподписанный сертификат подходит для того, что вы называете, убедитесь, что его общее имя (CN) - это имя хоста, с которым вы пытаетесь поговорить (без полного URL, только имя хоста).