Bash glob расширяется до нескольких аргументов

Вы добавили SAN в CSR , но не сказали caвключать расширения из CSR в сертификат. Видетьhttps://security.stackexchange.com/questions/150078/missing-x509-extensions-with-an-openssl-generated-certificateили справочную страницу дляcaтакже в Интернете по адресуcopy_extensions

РЕДАКТИРОВАТЬ :Вам также необходимо указать x509_extensionsв конфигурации caили эквивалентную, но менее удобную опцию командной строки -extensions, в любом случае указывающую на раздел, который существует, но может быть пустым, если вам не нужны расширения, требуемые CA -. Сначала я этого не заметил, потому что никогда не пробовал в случае с расширениями из CSR только , а не конфиг, что нереально для большинства УЦ. Если вы укажете copy_extensions, отличное от none(, и в CSR есть некоторые ), но не укажите x509_extensions, тогдаcaпомещает расширения в сертификат, но не установите версию сертификата на v3, как того требуют стандарты (, такие как rfc5280 ), если присутствуют расширения.

Возможно, это ошибка; man-страница говорит, что x509_extensions/extensionsуправляет настройкой v3, и , а не , говоря что-либо подобное о copy_extensions, подразумевает, что это не так, но ИМХО, это, безусловно, очень неоптимальная функция. РЕДАКТИРОВАТЬ :это ошибка, которая будет исправлена, но до тех пор используйте обходной путь, см.https://unix.stackexchange.com/a/394465/59699

ОДНАКО :в моем тесте это на самом деле не решило вашу проблему. Несмотря на то, что сертификат имеет *.localв SAN и CN и (теперь )в остальном действителен, мой Firefox (53.0.2 )и Chrome (59.0.3071.109 )по-прежнему отклоняют его с SSL _ОШИБКА _CERT _ДОМЕН _ОШИБКА и ОШИБКА _CERT _ОБЩЕЕ _ИМЯ _НЕДЕЙСТВИТЕЛЬНО соответственно. Я предположил, что они могут не исключать localиз обычной логики уровня 2+ -, и попробовал*.example.local:Chrome принимает это, а Firefox — нет.Я также пробовал *.example.orgи Chrome, и IE11, такие как , , но все еще не Firefox (, и, конечно, присвоение себе имен в реальных TLD, таких как .org, не является тем способом, которым DNS должен работать ). ].

Тут я застрял. При некоторой доработке OpenSSL можно заставить генерировать сертификат, содержащий почти все, что вы хотите, но что Firefox и Chrome примут , я не знаю. Я постараюсь изучить это и обновить, если я найду что-нибудь.


Надеюсь, вы имеете в виду , которое вы указали *.localв качестве общего имени только для CSR сервера, а НЕ для сертификата CA (self -подписанного )). Если имена субъектов для ЦС и листовых сертификатов совпадают, ничто не будет надежно работать. РЕДАКТИРОВАТЬ :ваш отредактированный Q подтверждает, что они правильно отличались. Хотя в нем не упоминается также указание страны, штата и организации, как того требует политика ca, которую вы использовали.

Примечание: «самоподписанный -» является техническим термином и означает подписанный одним и тем же ключом . Ваш сертификат ЦС является самоподписанным -. Сертификат вашего сервера подписан вами самостоятельно с помощью вашего собственного ключа, но он не самоподписанный -. Попытка применить инструкции для самоподписанного -сертификата к не -самоподписанному -сертификату была частью вашей проблемы.

И замечание Жиля о md5 для алгоритма подписи тоже верно.

РЕДАКТИРОВАТЬ :«Сброс» серийного номера (и индекса )для настройки openssl ca— плохая идея, если только вы окончательно не откажетесь от сертификата ЦС и имени , для которых они использовались. Стандарты говорят, что данный ЦС не должен выдавать более одного сертификата с одним и тем же серийным номером в сертификате, и серийный файл — это способ openssl ca(, а такжеx509 -req)реализовать это. «Настоящие» (публичные )центры сертификации в настоящее время больше не используют простой счетчик, но включают энтропию для блокировки атак коллизий на PKI --google hashclash --, но это не проблема для личного центра сертификации, такого как ваш.Я легко могу поверить, что браузер (или другой надежный )недоволен, если он видит несколько сертификатов с одним и тем же серийным номером и именем CA, хотя я бы НЕ ожидал, что браузер будет постоянно хранить конечный сертификат --и, таким образом, видеть оба старые и новые в одном процессе, если они не работают долго ---, если вы не импортируете их в соответствующий магазин, в том числе в Firefox, если вы сделаете их постоянными «исключениями».

0
12.11.2019, 17:54
2 ответа

Шаблоны раскрываются только при совпадении имен файлов. Может быть, вместо этого вы можете использовать расширение скобок? Запустите скрипт с

pingall machine0{1..6}

, который будет расширен до

pingall machine01 machine02 machine03 machine04 machine05 machine06
1
28.01.2020, 02:21

подстановка — это другое название для генерации имени файла или расширения имени пути .

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

Здесь вы можете вместо этого использовать фигурные скобки:

pingall machine{01..06}

Который оболочка расширяет до machine01, machine02... machine06отдельные аргументы независимо от того, существуют ли файлы с таким именем в текущем каталоге (он не подставляется ).

Этот синтаксис взят из zshи также поддерживается последними версиями bashи yash -o braceexpand.

С ksh93вы должны использовать:

pingall machine{1..6%02d}

хотя в этом конкретном случае вы также можете использовать:

pingall machine0{1..6}

С помощью команды GNU seqвы также можете выполнить (, предполагая значение по умолчанию$IFS):

pingall $(seq -f machine%02.0f 6)
3
28.01.2020, 02:21

Теги

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