Экспорт файла P7b со всей цепочкой сертификатов в файл CER - PullRequest
31 голосов
/ 02 июня 2011

У меня есть файл p7b, предоставленный Thwate. Когда я пытаюсь экспортировать сертификат в файл cer с помощью приведенной ниже команды, цепочка сертификатов не включена.
Пожалуйста, предложите, как сделать то же самое.Этот CER требуется для импорта в хранилище ключей Интернета.

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

Ответы [ 5 ]

47 голосов
/ 07 марта 2014

-print_certs - это опция, которую вы хотите использовать для перечисления всех сертификатов в файле p7b, вам может потребоваться указать формат файла p7b, который вы читаете.

Затем вы можете перенаправить вывод в новый файл для создания составного списка сертификатов.

Откройте файл в текстовом редакторе, вы увидите либо Base64 (PEM), либо двоичные данные (DER).

openssl pkcs7 -inform DER -outform PEM -in certificate.p7b -print_certs > certificate_bundle.cer

http://www.openssl.org/docs/apps/pkcs7.html

6 голосов
/ 09 июня 2016

Выбранный ответ не работает для меня, но он близок.Я нашел учебник, который работал для меня, и сертификат, который я получил от StartCom.

  1. Откройте .p7b в текстовом редакторе.
  2. Измените лидера и трейлер так, чтобы файл выглядел примерно так:

    -----BEGIN PKCS7-----
    [... certificate content here ...]
    -----END PKCS7-----
    

Например, мой сертификат StartCom начинался с:

    -----BEGIN CERTIFICATE----- 

и заканчивается:

    -----END CERTIFICATE----- 
Сохраните и закройте .p7b.

Запустите следующую команду OpenSSL (работает на Ubuntu 14.04.4, на момент написания этой статьи):

openssl pkcs7 -print_certs –in pkcs7.p7b -out pem.cer

Вывод .cer сцепочка сертификатов.

Ссылка: http://www.freetutorialssubmit.com/extract-certificates-from-P7B/2206

4 голосов
/ 11 июня 2012

Единственная проблема заключается в том, что любые дополнительные сертификаты в полученном файле не будут распознаны, так как инструменты не ожидают более одного сертификата на кодированный файл PEM / DER. Даже сам openssl. Попробуйте

openssl x509 -outform DER -in certificate.cer | openssl x509 -inform DER -outform PEM

и убедитесь сами.

1 голос
/ 10 марта 2015

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

openssl pkcs7 -inform DER -print_certs -in <path of the file> | awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
0 голосов
/ 26 июля 2011

Если вы добавите -chain к вашей командной строке, он будет экспортировать любые цепочечные сертификаты.

...