Ответ 1
-Dcom.sun.net.ssl.checkRevocation=false
Я получил эту ошибку при попытке запустить приложение:
Sun.security.validator.ValidatorException: PKIX path validation failed:
java.security.cert.CertPathValidatorException: java.net.UnknownHostException:oscp.thawte.com
Приложение за закрытой сетью и никогда не сможет добраться до oscp.thawte.com. Есть ли параметр java, который может отключить это?
-Dcom.sun.net.ssl.checkRevocation=false
Не совсем настройка, но вы можете переопределить TrustManager по умолчанию и HostnameVerifier, чтобы принять что-либо. Небезопасный подход, но в вашей ситуации это может быть приемлемым.
Полный пример: проблема с сертификатом сертификата в HTTPS
Используйте утилиту cli utility keytool из дистрибутива Java для импорта (и доверия!) Необходимых сертификатов
Образец:
Из файла cli change dir to jre\bin
Проверить хранилище ключей (файл найден в каталоге jre\bin)
keytool -list -keystore..\lib\security\cacerts
Введите пароль хранилища ключей: changeit
Загрузите и сохраните всю цепочку сертификатов с нужного сервера.
Добавить сертификаты (прежде чем нужно удалить атрибут "только для чтения" в файле "..\lib\security\cacerts") keytool -alias REPLACE_TO_ANY_UNIQ_NAME -import -keystore..\lib\security\cacerts -file "r:\root.crt"
случайно я нашел такой простой наконечник. Другие решения требуют использования InstallCert.Java и JDK
источник: http://www.java-samples.com/showtutorial.php?tutorialid=210
Ответ, данный MK, отлично работает:)
В веб-сервисе Axis, и если вам нужно отключить проверку сертификата, используйте ниже код:
AxisProperties.setProperty("axis.socketSecureFactory","org.apache.axis.components.net.SunFakeTrustSocketFactory");
На моем Mac я уверен, что я не буду разрешать java в любом месте, кроме определенного сайта, я смог использовать Preferences-> Java, чтобы открыть панель управления Java и отключить проверку. Если DLink когда-нибудь исправит свой сертификат, я верну его.
В дополнение к ответам выше. Вы можете сделать это программно, внедрив TrustManager:
TrustManager[] trustAllCerts = new TrustManager[] {
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkClientTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException {}
@Override
public void checkServerTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException {}
}
};
Однако это не очень хорошая практика для производства.
Проверьте этот пример на Как отключить проверку сертификата SSL в Java