Экспорт OpenSSL pkcs12 завершается неудачно при указании файла CSR - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь создать файл 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 Ответ

0 голосов
/ 29 августа 2018

Не пытайтесь указать файл 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, если соответствующий сертификат уже существует.

...