Как обойти исключение CertificateException Java?

Я пытаюсь отправить запрос на сервер, но он имеет следующую ошибку, так как я знаю, должен создать сертификат, но не уверен, как это сделать. Я нашел этот ответ, но не смог его реализовать.

java.security.cert.CertificateException: No subject alternative DNS name matching www.example.com found.

Код

        URL url = new URL("https://www.example.com:1897/services/myservice");

        HttpsURLConnection con = (HttpsURLConnection) url.openConnection();

        con.setRequestMethod("POST");
        con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        con.setDoOutput(true);
        con.setDoInput(true);

        OutputStream os = con.getOutputStream();
        m.marshal(auth, os);
        m.marshal(auth, System.out);

        os.flush();
        con.getResponseCode();

Ответ 1

Сервер может использовать сертификат, который не имеет надлежащих расширений. Вы можете либо отключить проверку имени узла (что создает проблему безопасности), либо установить на сервере надлежащий сертификат (что может быть затруднено, если это не ваш сервер).

Более конкретно, я бы предположил, что либо сертификат сервера содержит расширение альтернативного имени объекта, но это расширение не содержит имя хоста сервера, либо нет расширения SAN и атрибута Common Name Subject Имя не соответствует серверу. В любом случае решением было бы получить сертификат с правильным именем хоста сервера в расширении SAN.