Openssl s_Client не проверяет сертификаты в 0.9.8r - PullRequest
5 голосов
/ 08 июня 2011

Я использую openssl v0.9.8r, и я попытался выполнить эту команду (с именем файла CA как cacert.pem в каталоге, в котором я работал)

openssl s_client -CAfile cacert.pem -CApath ./ -connect mail.google.com:443

И проверка не удалась следующим образом

Verify return code: 20 (unable to get local issuer certificate)

Однако, когда я попробовал ту же команду на одной из более старых версий, а именно OpenSSL 0.9.8e-fips-rhel5, она прошла успешно, как и ожидалось.Я что-то здесь упускаю?Я был бы очень признателен за любую помощь, которую я могу получить, поскольку я застрял с проблемами openssl некоторое время сейчас.Большое спасибо заранее.

С уважением

Хари

Ответы [ 2 ]

2 голосов
/ 09 августа 2011

Из OpenSSL Проверка страницы

20 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: невозможно получить сертификат локального эмитента

сертификат эмитента не может быть найден: это происходит, если сертификатСертификат эмитента ненадежного сертификата не может быть найден.

Как вы можете догадаться, это означает, что ЦС не удалось загрузить или проверить.Это может быть вызвано любым числом причин, но вот хороший контрольный список.

  • Разрешения.В Linux попробуй sudo.В Windows попробуйте «Запуск от имени администратора».
  • Попробуйте использовать команду проверки с обеими версиями и посмотрите, появляется ли одна и та же ошибка.

    openssl verify -CAfile cacert.pem -CApath ./

  • Отсутствующие / неуместные файлы.Возможно, что-то изменилось в этой папке с момента запуска.

  • Путь.Попробуйте запустить команду из того же каталога, в котором вы находились, когда запускали команду из OpenSSL 0.9.8e-fips-rhel5.
0 голосов
/ 03 сентября 2014

Эта ошибка ближе к ошибке, чем к функции, но она есть, если мы ее документируем; -)

c_rehash /etc/ssl/certs
...