Как получить открытый ключ в форматах .cer или .crt - PullRequest
0 голосов
/ 09 мая 2018

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

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365

Это дало мне сертификат и закрытый ключ в файле .pem. Мне нужно предоставить мой открытый ключ моим клиентам в формате .cer или .crt. Есть ли способ получить открытый ключ в форматах .cer / .crt?

Что я уже пробовал:

1. Создание открытого ключа в формате .pem и попытка преобразовать его в .cer или .crt [ Не работает ]

Чтобы извлечь открытый ключ из файла .pem [работал нормально]:

`openssl x509 -pubkey -noout -in signer-cert.pem  > signer-public-key-test.pem`

Чтобы преобразовать его из .pem для .cer формата openssl x509 -inform PEM -in signer-public-key-test.pem -outform DER -out signer-public-key-test.cer Я получаю эту ошибку:

unable to load certificate
140067363030680:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:701:Expecting: TRUSTED CERTIFICATE

2. Преобразование моего сертификата в .cer (что я сделал нормально) и попытка экспортировать открытый ключ с помощью мастера экспорта сертификатов Windows, как указано в инструкциях здесь

Это тоже не сработало. Я не смог включить опцию экспорта ключей и окончательный вывод, когда открывался в блокноте ++ был мусор.

Так что мой вопрос, есть ли способ сгенерировать сертификат с нуля и иметь открытый ключ в файле .cer или .crt. ИЛИ генерирование сертификата в формате .pem и последующее извлечение открытых ключей в .crt или .cer

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 09 мая 2018

Поскольку .cer и .crt обычно означают «сертификат DER или PEM-DER X.509», я не знаю, что вы имеете в виду, имея открытый ключ в этом формате.

Если вы имеете в видуВы хотите, чтобы SubjectPublicKeyInfo в кодировке DER представлял открытый ключ, второй этап вашего конвейера был бы

openssl asn1parse -noout -out some.file

. Промежуточное звено можно удалить с помощью

openssl x509 -in signer-cert.pem -noout -pubkey | 
    openssl asn1parse -noout -out signer-public-key-test.der

(добавлена ​​новая строка для удаления полосы прокрутки)

Или вообще пропустите посредника по сертификатам:

openssl rsa -in key.pem -pubout -outform der -out signer-public-key-test.der

Кажется довольно странным, что вам нужен именно этот формат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...