2013-06-13 2 views
23

Я знаю, что вы можете указать цель, для которой открытый ключ сертификата может быть использован для, добавив строку, как этот в openssl.cfg файла:Openssl x509v3 Extended Key Usage

extendedKeyUsage=serverAuth,clientAuth 

Но поскольку У меня есть несколько сертификатов для создания, каждый с другим расширенным использованием ключа, можно ли указать, какой атрибут мне нужен в командной строке (без использования файла openssl.cfg)? Что-то вроде:

openssl req -newkey rsa:4096 \ 
      -extendedKeyUsage "serverAuth,clientAuth" \ 
      -keyform PEM \ 
      -keyout server-key.pem \ 
      -out server-req.csr \ 
      -outform PEM 

Спасибо!

ответ

8

То, что я в конечном итоге делает создает несколько файлов openssl.cfg и обратитесь к соответствующему одному, используя либо -config или выключатель -extfile.

+3

Возможно, вы захотите «принять» свой собственный ответ (так что он больше не будет отображаться как неотвеченный вопрос) –

24

Вы можете использовать что-то вроде этого:

openssl -extensions mysection -config myconfig.cnf 

и myconfig.cnf:

[mysection] 
keyUsage   = digitalSignature 
extendedKeyUsage = codeSigning 

Я не знаю, интерфейса командной строки для этой функции.

+1

Я получаю это: 'невозможно найти 'выделенное имя' в config' –

+0

@MarinosAn, данная конфигурация содержит только части относящихся к вопросу. Возможно, вам придется предоставить еще несколько дополнительных параметров. Это выходит за рамки оригинального вопроса. – patrikbeno

Смежные вопросы