Назад | Перейти на главную страницу

ошибка при попытке добавить собственные расширения в сертификаты X509 с помощью openSSL

Я пытаюсь добавить собственные расширения в свой самозаверяющий сертификат. Я пробовал следующее

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -extfile myconfig.cnf -extensions v3_req

Ошибка

unknown option -extfile

myconfig.cnf

[req]
req_extensions = v3_req

[v3_req]
1.2.3.4.5.6.7.8=ASN1:UTF8String:Something

когда я удаляю -extfile myconfig.cnf -extensions v3_req, Я вижу, что cert.pem успешно создан.

Я вижу, что -extfile не является допустимым вариантом. Однако я вижу другие сообщения, предлагающие то же самое Пользовательское расширение Openssl

РЕДАКТИРОВАТЬ

я использовал -config вместо того -extfile но я получаю следующую ошибку

unable to find 'distinguished_name' in config
problems making Certificate Request
4646921836:error:0EFFF06C:configuration file routines:CRYPTO_internal:no value:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-22.260.1/libressl-2.6/crypto/conf/conf_lib.c:322:group=req name=distinguished_name

Ваш файл конфигурации содержит две небольшие ошибки:

  1. При звонке с -x509 req не ищет req_extensions, но x509_extensions раздел,
  2. Ваш файл конфигурации не содержит выдающееся имя attribute, который является единственным атрибутом сертификата без значения по умолчанию.

Поэтому минимальный файл конфигурации будет выглядеть так:

[ req ]
distinguished_name = dn
x509_extensions = extensions
prompt = no

[ extensions ]
1.2.3.4 = ASN1:UTF8String:Something

[ dn ]
0.DC = com
1.DC = example
commonName = example.com

В prompt опция отключает запрос отличительного имени RDN. Вы можете создать свой сертификат с помощью:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem\
-days 365 -config myconfig.cnf

Более полный пример, конечно, должен включать некоторые стандартные расширения в [ extensions ] раздел, который вы можете найти в стандартной конфигурации OpenSSL:

# PKIX recommendation.
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
basicConstraints = critical,CA:true

Вам нужно использовать -config возможность указать конфигурацию вместо -extfile. В вашем случае этот файл должен иметь [v3_req] раздел.

Подробнее см. openssl req справочная страница.