Ошибка Openssl 20 при поиске глубины 0: невозможно получить сертификат локального эмитента - PullRequest
0 голосов
/ 03 ноября 2018

Root certificate -> Intermediate CA -> Environment CA -> Host Cert

Openssl verify работает с CAfile (имеет корень цепочки сертификатов + int + env), но не с CApath. Я должен использовать ca-dir для syslog-ng, и я продолжаю получать эту ошибку.

openssl verify -CAfile etc/ssl/test/ca.pem host2.pem
host2.pem: OK

openssl verify -CApath /etc/ssl/test/ host2.pem
host2.pem: CN = host.domain.com
error 20 at 0 depth lookup:unable to get local issuer certificate

Проверка Openssl работает с путем CA на другом хосте, хотя сертификат хоста был создан с той же конфигурацией и использует ту же цепочку сертификатов. Почему CApath не проходит проверку?

1 Ответ

0 голосов
/ 03 ноября 2018

Из документации OpenSSL : https://www.openssl.org/docs/manmaster/man1/verify.html

-CApath directory

Каталог доверенных сертификатов. Сертификаты должны иметь Имена формы: hash.0 или имеют символические ссылки на них этой формы ("hash" - это имя субъекта хешированного сертификата: см. параметр -hash утилиты x509). Под Unix скрипт c_rehash будет автоматически создавать символические ссылки на каталог сертификатов.

Так что, если я прав, опция -CApath должна указывать каталог с хешированным списком сертификатов или иметь символическую ссылку на них. Вы можете получить какой-то список через, например, с использованием опции -hash команды openssl x509.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...