Экспорт OpenSSL pkcs12 завершается неудачно при указании файла CSR
Я пытаюсь создать файл p12 для использования с PushSharp для отправки push-уведомлений iOS. Я использовал этот точный процесс год назад, чтобы обновить наши сертификаты, и он работал нормально; но сейчас это не удается на последнем этапе.
Вот что я делаю:
- Создайте запрос подписи сертификата в Keychain Access в виде файла с именем
CertificateSigningRequest.certSigningRequest
- Экспортируйте закрытый ключ из Keychain Access, сохранив файл как
private_key.p12
- Перейдите на сайт developer.apple.com, создайте производственный сертификат Apple Push Services, используя файл CSR, начиная с шага 1, загрузите файл как
aps.cer
- Запустите следующие команды в оболочке (в значительной степени идентичные тем, которые можно найти в некоторых других сообщениях переполнения стека):
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, если соответствующий сертификат уже существует.