Почему я получаю ошибку openssl: неизвестный параметр для -adext?

Вопрос или проблема

Я пытаюсь сгенерировать CSR с использованием openssl с альтернативными именами субъектов, однако получаю ошибку, указывающую на отсутствие опций для adext. См. команду ниже.. Я использую OpenSSL 1.0.2k-fips

openssl req -new \
-newkey rsa:2048 -nodes -keyout {domain-name}.key \
-out {domain-name}.csr \
-subj "/C=GB/ST=test/L=/O=test/OU=test/CN={domain-name}.com" \
-addext "subjectAltName = DNS:first.{domain-name}.com,DNS:second.{domain-name}.com,DNS:third.{domain-name}.com,DNS:www.{domain-name}.com.com"

Ошибка подразумевает, что у вас есть опечатка, и вы пропустили d в команде, когда ввели ее в первый раз (-adext != -addext).

Если вы возьмете ровно то, что вы показали в вопросе, и просто уберете все {}, чтобы использовать domain-name.com в качестве домена, это не сработает, потому что L= требует значения, но если вы добавите значение, то все будет работать нормально:

$ openssl req -new \
> -newkey rsa:2048 -nodes -keyout domain-name.key \
> -out domain-name.csr \
> -subj "/C=GB/ST=test/L=foo/O=test/OU=test/CN=domain-name.com" \
> -addext "subjectAltName = DNS:first.domain-name.com,DNS:second.domain-name.com,DNS:third.domain-name.com,DNS:www.domain-name.com.com"
Генерация RSA-ключа
................+++++
...........................................+++++
запись нового закрытого ключа в 'domain-name.key'
-----

p.s. у вас также есть лишний .com в конце

Ответ или решение

Ошибка OpenSSL «неизвестный параметр для -adext» часто возникает из-за неправильного написания параметра в командной строке. Рассмотрим причины и возможные решения данной проблемы более подробно.

Причины ошибки

  1. Опечатка в параметрах команды: Параметр -adext не существует в OpenSSL. Правильный вариант — -addext. Проверка точности написания командных аргументов очень важна, особенно когда речь идет о параметрах, которые могут повлиять на итоговую команду.

  2. Версия OpenSSL: Вы используете OpenSSL версии 1.0.2k-fips. Следует отметить, что поддержка параметра -addext появилась только в более поздних версиях, начиная с OpenSSL 1.1.0. Эта версия вводит дополнительные возможности для работы с сертификатами, включая поддержку альтернативных имен субъектов (SAN). Ваша версия не поддерживает этот параметр, поэтому вы и получаете ошибку.

  3. Ошибки в значении параметров: В вашем примере есть также недочет в значении -subj. Поле L= (город) не имеет значения, что также вызовет ошибку при выполнении команды. Нужно указать действительное значение, например, L=London.

  4. Неверный синтаксис SAN: В вашем запросе есть лишняя ‘.com’ в конечной части параметра subjectAltName, что также вызывает проблемы. Корректная строка должна выглядеть так: subjectAltName = DNS:first.domain-name.com,DNS:second.domain-name.com,DNS:third.domain-name.com,DNS:www.domain-name.com.

Решение проблемы

С учетом вышеизложенного, для генерации CSR с использованием альтернативных имен субъекта рекомендую следующее:

  1. Обновите OpenSSL: Если это возможно, обновите до версии 1.1.0 или новее, чтобы иметь возможность использовать параметр -addext.

  2. Корректировка команды: Убедитесь, что ваша команда имеет правильный синтаксис. Пример исправленной команды:

openssl req -new \
-newkey rsa:2048 -nodes -keyout domain-name.key \
-out domain-name.csr \
-subj "/C=GB/ST=test/L=London/O=test/OU=test/CN=domain-name.com" \
-addext "subjectAltName = DNS:first.domain-name.com,DNS:second.domain-name.com,DNS:third.domain-name.com,DNS:www.domain-name.com"

Заключение

Ошибки в командной строке OpenSSL могут ворваться в процесс генерации сертификатов, особенно когда дело касается параметров расширений. Убедившись в корректности написания команд и, при необходимости, обновив программное обеспечение, вы сможете избежать подобных проблем в будущем. Используя правильный синтаксис и актуальные версии OpenSSL, процесс генерации CSR с SAN станет простым и эффективным.

Оцените материал
Добавить комментарий

Капча загружается...