В 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
Вы видели эту ошибку раньше?
file a.p7b
тебе дает?Ответы:
Попробуй это:
Если это не сработает, перейдите на компьютер с Windows и выполните экспорт, следуя этому руководству.
источник
-print_certs
в его команде. Это влияет на формат вывода: с его помощью вы получаете формат PEM (начиная с ----- BEGIN CERTIFICATE -----), а без него вы получаете формат PKCS # 7 (----- BEGIN PKCS7-- ---)-inform der
часть. Также обратите внимание, что при экспорте ключа из диспетчера сертификатов Windows DER и P7B являются двумя различными вариантами.Таким образом, чтобы объединить вышеуказанные ответы, команда:
openssl pkcs7 -in cert.p7b -inform DER -print_certs -out cert.pem
Проверено, чтобы работать на Windows, используя OpenSSL-Win64
/ Спасибо Богдану за обнаружение ошибки
источник
Я следовал этому руководству, которое инструктирует вас изменить строки верхнего / нижнего колонтитула
в
Затем выполните команду
openssl pkcs7 -in foo.modified.crt -print_certs -out foo.certs
(гдеfoo.modified.crt
находится файл, в который вы сохранили измененную версию). Это дало мне те же результаты, что и при экспорте сертификата Windows, как предлагалось в других ответах.источник
Насколько я знаю, следующее должно преобразовать сертификат pkcs7 в pem
источник
быстрое решение в моем случае (много файлов с отсутствующим верхним / нижним колонтитулом):
base64 -d $FILE | openssl pkcs7 -inform DER -print_certs
источник
У меня тоже была эта пробема. Я собирался проверить файл p7b, скопированный с хоста Win7.
Я обнаружил, что брелок gnome может импортировать сертификат. Оттуда легко экспортировать в DER
источник