#openssl #certificate
#openssl #сертификат
Вопрос:
openssl verify
есть -untrusted
возможность указать цепочку промежуточных сертификатов, которые стоят между
- сертификат корневого центра сертификации, который указывается с помощью опции
-CAfile
или-CApath
- и конечный сертификат, подлежащий проверке, которые указаны в качестве последних аргументов
Кто-нибудь знает, как мы указываем промежуточную цепочку сертификатов для openssl s_client
и openssl s_server
команд? Страницы руководства ничего не говорят об этом, к сожалению.
Кажется, что если промежуточная цепочка включена в файл, передаваемый -cert
опции вместе с сертификатом клиента или сервера, это не работает, из этого файла считывается только первый сертификат.
Ответ №1:
Meta: на самом деле это не вопрос программирования или разработки. Вместо этого он может принадлежать суперпользователю или, возможно, security.SX.
Для OpenSSL версий 1.1.0 (выпущена в 2016-08 годах) и выше вы можете предоставить (точные) промежуточные / цепные сертификаты в файле, используя -cert_chain
и / или вы можете указать -build_chain
и использовать -chainCAfile
и / или -chainCApath
, из которых выбираются необходимые сертификаты, аналогично тому, как -CAfile
и -CApath
традиционно используются. Однако они не документированы в 1.1.0, только 1.1.1 (2018-09); посмотрите эти справочные страницы, если они у вас установлены, или в Интернете для s_client и s_server.
Для более низких версий вам нужен kludge: -CAfile
и -CApath
, которые номинально предоставляют truststore для проверки сертификата однорангового узла, также используются (неявно) для завершения вашей собственной цепочки (self). Обратите внимание, что некорневые сертификаты CA в truststore используются для построения цепочек как для отправки, так и для проверки (получения), но не в качестве якорей проверки в этих версиях, поэтому их включение никогда не меняет того, какие одноранговые сертификаты фактически принимаются как действительные. (В 1.1.0 и 1.1.1 они по-прежнему не являются якорями по умолчанию, но являются, если вы укажете -partial_chain
.)
Комментарии:
1. Очень четкий ответ, спасибо! Звучит так, как будто вы знаете код наизнанку. Не могу дождаться, чтобы попробовать!