2009-07-29 4 views
1

Проблема:Не удалось найти доверенный сертификат

Я получаю ошибку брошенную из javax.net.ssl.SSLHandshakeException (прилагается изображение)

alt text

Возможно ли для Java иметь коррумпированный или отсутствующий сертификат CA? Если да, то как я могу восстановить или решить эту проблему/ошибку?

Что я пробовал:

  1. Я удалил все версии JRE с ПК и установил последнюю версию JRE (1.6.14).
  2. Очищено и удалено все ненужные доверенные сертификаты из раздела «Пользовательские сертификаты».
  3. Попробуйте запустить Keytool, чтобы получить отпечатки пальцев СА

При попытке запустить Keytool я получаю следующее: ошибка

Keytool: java.security.cert.CertificateParsingException: Java. io.IOException: subject key, java.security.spec.InvalidKeySpecException: неизвестная спецификация ключа.

+0

Вы можете указать некоторые сведения о том, к чему вы пытаетесь подключиться? –

+0

Из-за контроля конфиденциальности я не могу освободить URL-адрес, к которому я пытаюсь подключиться. Я пробовал подключиться на другой машине с успехом. Поэтому я знаю, что это проблема среды, а не проблема с кодом или проблема с сервером. –

ответ

1

Теоретически возможно, но ИМО крайне маловероятно, что Java имеет коррумпированный сертификат CA. Скорее всего, CA CA, которого вы хотите, не находится в магазине JRE's cacerts. Вы можете проверить содержимое магазина (по крайней мере, на Linux) с помощью «keytool»; например

keytool -list -keystore /usr/java/jdk1.6.0_14/jre/lib/security/cacerts 

Просмотрите эту страницу, чтобы увидеть, можете ли вы увидеть отпечаток пальца для CAcert, который требуется вашему URL.

Ссылка: JDK 6.0 JDK Development Tools/Security Tools страница/раздел.