Не мог пройти проверку подлинности на сайт SSL в Java: “нарушенный pathLenConstraint - этот сертификат должен быть последним сертификатом в пути сертификации”

    for dir in ./* ./**/*    # list directories in the current directory
    do
        python $dir
    done

./* - файлы в папке dir, а ./**/* - файлы в подпапках.

Убедитесь, что у вас есть только файлы Python в вашем каталоге, он будет запускать все файлы в этом каталоге

7
задан skaffman 18 May 2012 в 18:29
поделиться

3 ответа

Я копался дальше, и ответ заключается в том, что мне нужно было импортировать необходимые сертификаты в хранилище ключей, используемое JVM для аутентификации SSL. Хранилище ключей - это файл 'cacerts' в папке jre / lib / security в jre, который используется для запуска программы.

Я вручную экспортировал сертификаты сайта - все они.
Затем я импортировал его в хранилище ключей по умолчанию с помощью утилиты 'keytool', предоставленной Sun. Обратите внимание, что вы должны импортировать их в правильном порядке.
Затем я поместил новое хранилище ключей вместо JRE - и это сработало.

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

Я верю, что есть способ легче обойти это, просто еще не нашел. Я буду рад получить несколько указателей (класс TrustManager в JSSE?).

Наконец, немного доверия. Этот пост здесь: http://javaishdiscoveries.blogspot.com/2009/02/battle-with-cacerts-and-https.html помог направить меня в правильном направлении.

6
ответ дан 7 December 2019 в 10:07
поделиться

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: ошибка проверки пути PKIX: java.security.cert.CertPathValidatorException: ошибка проверки базовых ограничений: нарушение pathLenConstraint - этот сертификат должен быть последним cert в пути сертификации на

pathLenConstraint

см. (Примечание о цепочках сертификатов) в

http://groups.google. com / group / google-checkout-developers-forum / web / google-checkout-and-ssl-Certific? version = 49

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


старый пост:

У меня почти такая же проблема.

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

Итак мое решение:

Я буду использовать хранилище ключей только для этого приложения и одного хоста 1. хранилища ключей не существует - создайте с некоторым сгенерированным паролем 2. сохранить пароль в файле конфигурации 3. спросить пользователя (или нет), хочет ли он принять этот сертификат 4. Если да - сохраните его в хранилище ключей и используйте при необходимости

Это хорошее решение? Есть комментарии?

0
ответ дан 7 December 2019 в 10:07
поделиться

Проблема заключалась в порядке цепочки сертификатов. Это было: A-> C-> B, но должно быть A-> B-> C, как только мы установили порядок цепочки, приложение начало работать.


Я лично не исправлял сертификаты. но этот пост был полезен

http://groups.google.com/group/google-checkout-api-troubleshooting/browse_thread/thread/99862c11d37d3127

0
ответ дан 7 December 2019 в 10:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: