Java SSL — InstallCert распознает сертификат, но по-прежнему возникает ошибка «не удается найти действительный путь сертификации»?

Думая, что столкнусь с той же проблемой, что и другие люди, я столкнулся с многочисленными похожими проблемами и потенциальными решениями, но безуспешно. .

Хранилище доверия, которое я использую, — это cacerts, расположенное в lib/security Java 1.6.0 JRE (сборка 1.6.0_20-b02... может ли это быть корнем проблемы?). Я также пробовал с jssecacerts.

Используя InstallCert (согласно другим опубликованным подобным проблемам), я вижу, что мой сертификат действительно установлен и действителен (и я удалил его, повторно импортировал и т. д., чтобы убедиться, что вижу правильные данные):

java InstallCert <my host name>
Loading KeyStore jssecacerts...
Opening connection to <my host name>:443...
Starting SSL handshake...
No errors, certificate is already trusted

Проверка в keytool и Portecle, повторный импорт сертификата (я пробовал генерировать из openssl с параметром -showcert, экспортировать из браузеров и проверять его и т. д.) дает мне "Это уже существует под этим другим псевдонимом здесь " Тип сообщения. Таким образом, похоже, нет никаких проблем с тем, как сертификат попадает в инструмент (ы).

Принудительное использование явных путей trustStore в коде не имеет никакого значения, и во всех случаях, когда я включаю отладку (через setProperty javax.net.debug на «все»), я вижу следующее:

main, SEND TLSv1 ALERT:  fatal, description = certificate_unknown
main, WRITE: TLSv1 Alert, length = 2 [Raw write]: length = 7 0000: 15
03 01 00 02 02 2E                               ....... main, called
closeSocket() main, handling exception:
javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to
find valid certification path to requested target

К сожалению, я не могу позволить переопределить проверку, внедрив свой собственный TrustManager - он должен проверять на самом деле.

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

Что еще можно проверить/попробовать? Перейти на другую версию JRE?

7
задан Bill 18 June 2012 в 16:30
поделиться