2015-11-29 7 views
4

Я использую самоподписанный сертификат CA для подписания других сертификатов. Для некоторых сертификатов мне нужно указать альтернативные имена объектов. Я могу указать их во время создания запроса (openssl req ...), и я вижу их в файле .csr. Тогда я подпишу его с CA CERT, используяТема Альтернативное имя не копируется в подписанный сертификат

openssl x509 -req -extensions x509v3_config -days 365 -in ${name}.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out ${name}.crt 

и последующих разделах в openssl.cnf файле:

[ x509 ] 
x509_extensions = x509v3_config 

[ x509v3_config ] 
copy_extensions = copy 

, но я не вижу SAN в .crt файле.

Я знаю о solutions с командой openssl ca ..., но у меня нет действительного раздела [ca], и я не хочу его копировать и вставлять без глубокого понимания того, что он делает. Поэтому я надеюсь, что существует другое решение с командой openssl x509 ....

ответ

5

Директива copy_extensions понимает только команда openssl ca. Нет способа скопировать расширения из CSR в сертификат с помощью команды openssl x509.

Вместо этого, вы должны указать точные расширений, которые вы хотите, как часть команды openssl x509, используя те же директивы, которые вы использовали для openssl req.

0

Извините, я не могу комментировать (пока).

В дополнении к @frasertweedale:

Я создал свой сервер-сертификат с конфигой

openssl req -new -out certificate.csr -key certificate_private_key.pem -sha256 -days 1825 -config certificate.conf 

Я тогда сделал

Вместо этого, вы должны указать точные расширения, которые вы хотите как часть команды OpenSSL x509, используя те же директивы, которые вы использовали для OpenSSL req.

с помощью следующей команды (я использовал тот же .conf-файл еще раз):

openssl x509 -req -in certificate.csr -CA ca-root-public-certificate.pem -CAkey ca-key.pem -CAcreateserial -out certificate_public.pem -sha256 -days 1825 -extfile certificate.conf -extensions v3_req 

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

  • Нет связанных вопросов^_^