OpenSSL подписывает запросы с расширениями

Я установил маленький самозаписываемый центр сертификации для моей среды dev. Я хотел бы создать множество сертификатов сервера с различными свойствами. Мой подход заключается в создании отдельного раздела расширений для каждого сервера. У меня есть один большой openssl.cnf, который содержит такие разделы:

[ server0_http ] nsCertType = server nsComment = "HTTP server0" basicConstraints=CA:FALSE extendedKeyUsage=serverAuth subjectAltName=@server0_http_altnames [ server0_http_altnames ] URI.1 = https://server.domain.tld URI.2 = http://server.domain.tld IP.1 = 1.2.3.4 DNS.1 = server.doamin.tld 

Затем, когда я создаю свой csr, используя openssl я использую параметры -config myCustomOpenssl.cnf -reqexts server0_http . Когда я смотрю на мой запрос, используя openssl req -text -noout -in myrequest.csr все выглядит идеально.

Однако после того, как я подпишу запрос, разделы «Расширенное использование ключа X509v3» и «Альтернативное имя субъекта X509v3» исчезли. Чтобы исправить эту проблему, я также поместил -extfile myCustomOpenssl.cnf -reqexts server0_http с параметрами для подписания вызова openssl .

Это ожидаемое поведение? Я всегда думал, что одного только csr-файла должно быть достаточно для создания сертификата по запросу, то есть со всеми его разделами. Как работает моя система сейчас, я получаю сертификат с отсутствующими разделами. Чтобы получить сертификат, как я хочу, я должен предоставить csr-файл и соответствующий раздел из файла конфигурации openssl, который я использовал для создания запроса. Это не проблема для моей небольшой настройки, но это становится довольно грязным, если я стал большим CA. Предполагается, что это так, или я неправильно использую openssl?

One Solution collect form web for “OpenSSL подписывает запросы с расширениями”

Найди его! То, что я описал, – это нормальное ожидаемое поведение openssl. По умолчанию пользовательские расширения не копируются в сертификат.

Чтобы make openssl копировал запрошенные расширения в сертификат, нужно указать copy_extensions = copy для подписания. В установках ванили это означает, что эта строка должна быть добавлена ​​в раздел default_CA в openssl.cnf .

В openssl.cnf который поставляется с (по крайней мере) Centos, строка уже включена как комментарий и несет предупреждение «используйте с осторожностью». Запрашивающие могут злоупотреблять этим, чтобы вы выдали сертификат ЦС, если вы не будете осторожны.

  • Шифровать слово X для шифрования / etc / shadow
  • Проблема зависимости пакета deb deb
  • Как построить openssl с clang (а не gcc) на машине FreeBSD?
  • OpenSSL Package Rebuild CentOS 6.4
  • Проблемы с Apache SSL (Centos 7)
  • SSH-туннелирование - локальные и удаленные случаи использования
  • Не удалось извлечь модуль, показатель из pubkey.pem
  • Ручная установка curl не может найти openssl
  • Какова правильная компоновка символических ссылок, позволяющих совместно использовать совместно используемые библиотеки openssl 1.1.0 и 1.0.2?
  • Использование ключевого файла в качестве пароля с OpenSSL
  • Как я могу расшифровать двоичную строку shaX, закодированную в base64?
  • Linux и Unix - лучшая ОС в мире.