Как создать пару ключей ECDSA на основе файла конфигурации OpenSSL?

При создании CSR на основе пар ключей RSA я для удобства использую команду OpenSSL:

      openssl req -new -noenc -config 'server.cert.conf' -keyout 'private/server.key.pem' -out 'server.csr.pem'

Мне нравится помещать детали в файл конфигурации, который выглядит примерно так:

      [ req ]
prompt = no
utf8 = yes
default_bits = 2048
default_md = sha256
distinguished_name = req_distinguished_name
req_extensions = req_extensions

[ req_distinguished_name ]
CN = foo.example.net

[ req_extensions ]

subjectAltName=@alt_names

[ alt_names ]
DNS.1 = foo.example.net
DNS.2 = bar.example.net

Теперь я хочу вместо этого работать с ключами ECDSA, но не нашел способа поместить все необходимые параметры в файл конфигурации. Вместо этого мне нужно вызвать несколько команд OpenSSL и указать некоторые параметры в качестве аргументов команды:

      $ openssl genpkey -genparam -algorithm ec -pkeyopt ec_paramgen_curve:secp384r1 -out server.key.params.pem
$ openssl genpkey -paramfile server.key.params.pem -out private/server.key.pem
$ openssl req -new -config 'server.cert.conf' -key 'private/server.key.pem' -out 'server.csr.pem'

Альтернативно, я могу пропустить второйкоманда, но мне все равно понадобится файл параметров:

      $ openssl req -new -config 'server.cert.conf' -noenc -newkey 'param:server.key.params.pem' -keyout 'private/server.key.pem' -out 'server.csr.pem'

Есть ли способ переместить всю конкретную конфигурацию алгоритма открытого ключа (например, выбор кривой EC) в файл конфигурации для CSR?

В идеале я хотел бы запустить точно такой же OpenSSL.команда из начала моего вопроса для ключей RSA и ECDSA. И внедрите все детали в файл конфигурации. Включая решение, какой алгоритм открытого ключа использовать в первую очередь.


Я прочитал все справочные страницы OpenSSL и искал ответы здесь и в других местах в Интернете. Но я пока ничего не нашел.

У меня сложилось впечатление, что OpenSSL довольно непоследователен, когда дело касается параметров CLI и параметров конфигурационного файла. Некоторыми вещами (например, альтернативными именами субъектов) можно управлять только через файлы конфигурации, тогда как другими вещами (например, кривыми EC) можно управлять только через аргументы CLI. Надеюсь, кто-нибудь сможет доказать, что я ошибаюсь насчет последнего.

Вместо этого я пытался использовать некоторые параметры CLI в файле конфигурации, но OpenSSL просто игнорирует их. На данный момент протестировано несколько вариантов этих строк:

      default_bits = ec:server.key.params.pem
default_newkey = ec:server.key.params.pem
pkeyopt = ec_paramgen_curve:secp384r1

0 ответов

Другие вопросы по тегам