Я пытаюсь добавить собственные расширения в свой самозаверяющий сертификат. Я пробовал следующее
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
Ваш файл конфигурации содержит две небольшие ошибки:
-x509
req не ищет req_extensions
, но x509_extensions
раздел,Поэтому минимальный файл конфигурации будет выглядеть так:
[ 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 справочная страница.