2009-09-29 4 views
1

Я пытаюсь решить проблему двухстороннего механизма установления связи SSL. Я получаю сообщение об ошибкеШаги для устранения проблем SSL

Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

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

Может кто-нибудь четко изложить эти шаги (с помощью соответствующих команд)? Гуглинг никуда меня не ведет. Мне просто нужен список шагов «Как я могу подтвердить, что клиент X может разговаривать с сервером Y с помощью двухстороннего SSL с помощью Cert Z»?

ответ

4

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

Самый простой способ убедиться в том, что сертификат подтверждает это использовать графический инструмент, как

Вышеуказанные инструменты рекомендуются, так как исключение, как правило, выбрасывается в отсутствие корневого сертификата.

Если вы хотите проверить, какие сертификаты обмениваются, лучше включить ssl debug flag на узле JVM, где проверка не выполняется.

Другой вариант - использовать утилиту захвата сетевого трафика, такую ​​как Ethereal или Microsoft Netmon, для получения дампа трафика, содержащего обмен сертификатов.

PS: Вы используете правильное хранилище ключей в первую очередь? Я помню, что совершал ту же ошибку много лет назад ...

+0

Hi Vineet, У меня есть доступ к сертификатам. Я хочу знать, какие записи я сравниваю? В сертификате имеется столько информации. Есть ли хорошая ссылка на КАК ПРОЧИТАТЬ сертификат? –

+0

Вы используете правильное хранилище ключей в первую очередь? Как я могу это определить? Я знаю, что мне нужно что-то сравнивать с выходом bin/keytool, но что это? –

+0

Хранилище хранилища для JVM обычно устанавливается при запуске, хотя вы можете изменить его позже, используя вызов System.setProperty(). Поэтому, если хранилище ключей JRE отличается от хранилища сертификатов, вы увидите это исключение, особенно когда хранилище ключей JRE не имеет промежуточных или доверенных сертификатов CA. –

Смежные вопросы