Рейтинг:0

Почему параметр openssl -trusted_first ведет себя иначе, чем переменная среды X509_V_FLAG_TRUSTED_FIRST?

флаг us

У меня есть perl-скрипт, который запускает openssl для локальной проверки действительности сертификатов. Я не хочу просто установить env var и уйти. Это больше похоже на что-то смешное с моей установкой или конфигурацией openssl

Какая система, версии…

Я локально проверяю сертификаты от Letsencrypt. Это система 20.04/Focal. Openssl это OpenSSL 1.1.1f 31 марта 2020 г. и поэтому я ожидаю, что он будет успешно проверять сертификаты, даже если LE «перекрестно подписывает» их с использованием нового корневого сертификата ISRG.

Однако после истечения срока действия старого сертификата X3 начались эти ошибки…

openssl verify -verbose -целевой sslserver -CAfile /path/redacted/chain.pem /path/redacted/cert.pem
C = США, O = Исследовательская группа по безопасности в Интернете, CN = ISRG Root X1. 
ошибка 2 при глубинном поиске 2: невозможно получить сертификат эмитента. 
ошибка /path/redacted/cert.pem: проверка не удалась

Это было странно. Некоторое копание заставило меня задуматься о -trusted_first возможность проверка openssl. Это именно то, что открывает sl бы пожаловаться, если выбран вариант «доверенный-первый» нет включено. Однако попытка явно включить эту опцию не имеет никакого эффекта:

openssl verify -trusted_first -verbose -целевой sslserver -CAfile /path/redacted/chain.pem /path/redacted/cert.pem
C = США, O = Исследовательская группа по безопасности в Интернете, CN = ISRG Root X1
ошибка 2 при глубинном поиске 2: невозможно получить сертификат эмитента
ошибка /path/redacted/cert.pem: проверка не удалась

Хорошо. Этот вариант должен Быть на по умолчанию с openssl 1.1.1 (вот эта система, см. выше). Так что мое явное включение не должно иметь значения.

Но в конце концов я попытался указать его как env var.Подожди, что? Почему указание этой переменной среды исправляет поведение openssl, чтобы доверять первому корневому сертификату, который он находит в цепочке:

установить X509_V_FLAG_TRUSTED_FIRST openssl verify -trusted_first -verbose -цель sslserver -CAfile /path/redacted/chain.pem /path/redacted/cert.pem

…выполняется с нулевым выходным значением.

уменьшение масштаба

Я не понимаю, почему openssl просто не работает (tm). Это полностью обновленная версия 20.04. Новый корневой сертификат ISRG установлен в /etc/ssl/certs/ISRG_Root_X1.pem и обновление-ca-сертификаты счастлив:

Обновление сертификатов в /etc/ssl/certs...
0 добавлено, 0 удалено; сделано.
Запуск хуков в /etc/ca-certificates/update.d...
сделано.
Рейтинг:3
флаг us

Я почти уверен, что это не то, как вы устанавливаете переменную среды перед запуском команды.

https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html

Например, я думаю, вы хотели бы что-то вроде

X509_V_FLAG_TRUSTED_FIRST=1 openssl verify -trusted_first -verbose -целевой sslserver -CAfile /path/redacted/chain.pem /path/redacted/cert.pem

вместо.

Ответить или комментировать

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