Экспорт файла P7b со всей цепочкой сертификатов в файл CER

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

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

person Kunal Jha    schedule 02.06.2011    source источник


Ответы (5)


-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

person bcarroll    schedule 07.03.2014
comment
Просто чтобы уточнить, как указать формат файла p7b, когда вы открываете файл в текстовом редакторе, если вы видите -----НАЧАТЬ СЕРТИФИКАТ----- и -----КОНЕЦ СЕРТИФИКАТА---- - строки, встроенные в тарабарщину, скорее всего, это формат Base64 (PEM). В противном случае, если это 100% тарабарщина, она, скорее всего, в двоичном (DER) формате. Я получил эту информацию по этой ссылке: knowledge.digicert.com/solution/SO26449.html - person Van Vangor; 17.01.2019
comment
Мне пришлось использовать openssl pkcs7 -outform PEM -in user.anaplanfrsysdev.p7b -print_certs, чтобы извлечь 2 сертификата из файла .p7b. - person user674669; 13.08.2019
comment
openssl pkcs7 -inform DER -outform PEM -in certificate.p7b -print_certs -out certificat_bundle.cer также должен работать. Он использует опцию самого openssl. - person Zailux; 23.11.2020

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

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

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

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

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

и закончилось:

    -----END CERTIFICATE----- 
  1. Сохраните и закройте файл .p7b.
  2. Запустите следующую команду 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

person fundatillus    schedule 09.06.2016
comment
должен был сделать это, чтобы keytool распознал сертификат. Большое спасибо! - person adonese; 05.03.2018

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

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

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

person AnrDaemon    schedule 11.06.2012
comment
Составной список промежуточных сертификатов полезен для веб-серверов Apache httpd, которые выполняют аутентификацию клиента X.509 с использованием параметра конфигурации SSLCACertificateFile. Из файла apache httpd-ssl.conf: укажите путь проверки сертификата ЦС, где можно найти сертификаты ЦС для аутентификации клиента, или, в качестве альтернативы, один большой файл, содержащий их все (файл должен быть закодирован в формате PEM) - person bcarroll; 03.03.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"}'
person Magnus    schedule 10.03.2015

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

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

person Master G    schedule 26.07.2011
comment
Вопрос касается файла PKCS7, а не файла PKCS12. - person s29; 18.10.2013