Назад | Перейти на главную страницу

Преобразование из P7B в PEM через OpenSSL

В Ubuntu я не могу успешно преобразовать сертификат с помощью openssl.

vagrant@dev:/vagrant/keys$ openssl pkcs7 -print_certs -in a.p7b -out a.cer 
unable to load PKCS7 object <blah blah>:PEM
routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: PKCS7

Вы видели эту ошибку раньше?

Попробуй это:

$ openssl pkcs7 -inform der -in a.p7b -out a.cer

Если не работает, переносит на компьютер с Windows и экспортирует этот руководство.

Итак, чтобы объединить приведенные выше ответы, команда:
openssl pkcs7 -in cert.p7b -inform DER -print_certs -out cert.pem

Проверено для работы в Windows с использованием OpenSSL-Win64

/ Спасибо Богдану за обнаружение ошибки

Я последовал за это руководство который предлагает вам изменить строки верхнего / нижнего колонтитула с

-----BEGIN PKCS #7 SIGNED DATA-----
[data]
-----END PKCS #7 SIGNED DATA-----

к

-----BEGIN CERTIFICATE-----
[data]
-----END CERTIFICATE-----

Затем запустите команду openssl pkcs7 -in foo.modified.crt -print_certs -out foo.certs (где foo.modified.crt - это файл, в который вы сохранили измененную версию). Это дало мне те же результаты, что и при экспорте сертификата Windows, как это предлагается в других ответах.

Насколько я знаю, следующее должно преобразовать сертификат pkcs7 в pem

openssl pkcs7 -in certificate_file.p7b -print_certs -out cert.pem

быстрое решение в моем случае (много файлов с отсутствующим верхним / нижним колонтитулом):

base64 -d $FILE | openssl pkcs7 -inform DER -print_certs

У меня тоже была эта пробема. Я собирался проверить файл p7b, скопированный с хоста Win7.

Я обнаружил, что связка ключей gnome может импортировать сертификат. Оттуда легко экспортировать в DER