Экспорт OpenSSL pkcs12 завершается неудачно при указании файла CSR

Я пытаюсь создать файл p12 для использования с PushSharp для отправки push-уведомлений iOS. Я использовал этот точный процесс год назад, чтобы обновить наши сертификаты, и он работал нормально; но сейчас это не удается на последнем этапе.

Вот что я делаю:

  1. Создайте запрос подписи сертификата в Keychain Access в виде файла с именем CertificateSigningRequest.certSigningRequest
  2. Экспортируйте закрытый ключ из Keychain Access, сохранив файл как private_key.p12
  3. Перейдите на сайт developer.apple.com, создайте производственный сертификат Apple Push Services, используя файл CSR, начиная с шага 1, загрузите файл как aps.cer
  4. Запустите следующие команды в оболочке (в значительной степени идентичные тем, которые можно найти в некоторых других сообщениях переполнения стека):
openssl x509 -in aps.cer -inform DER -out app_cert.pem -outform PEM

openssl pkcs12 -nocerts -out private_key.pem -in private_key.p12

openssl rsa -out private_key_noenc.pem -in private_key.pem

openssl pkcs12 -export -in app_cert.pem -inkey private_key_noenc.pem -certfile CertificateSigningRequest.certSigningRequest -name "MyAppName" -out pushsharp.p12

Последняя команда openssl завершается с ошибкой:

невозможно загрузить сертификаты

Я не смог понять, что я делаю неправильно; это все в сценарии, который работал отлично год назад. Я смог получить openssl pkcs12 -export Команда, чтобы преуспеть, удалив -certfile CertificateSigningRequest.certSigningRequest аргумент, но я считаю, что сгенерированный этим файл p12 не будет работать с PushSharp.

1 ответ

Решение

Не пытайтесь дать CSR-файл в качестве параметра -certfile,

-certfile можно использовать для добавления дополнительных сертификатов в магазин.

Например, цепочка сертификатов CA в app_cert.pem:

    openssl pkcs12 -export -in app_cert.pem -inkey private_key_noenc.pem \
                -certfile ca_certificates.pem -name "MyAppName" -out pushsharp.p12

Обычно нет необходимости использовать CSR, если соответствующий сертификат уже существует.

Другие вопросы по тегам