OSX Keychain Access-создание CSR из существующего закрытого ключа для APNS (служба Push-уведомлений Apple)

когда вам нужно создать новый сертификат для APNS, портал подготовки "мастер" всегда дает шаги для создания нового CSR, что означает, что вам нужно создать новый открытый/закрытый ключ. Они могут начать выходить из-под контроля, поэтому есть ли способ создать CSR (запрос подписи кода) в Keychain Access из существующего закрытого ключа вместо того, чтобы создавать новый каждый раз?

спасибо

2 ответов


как правило, вы можете сделать это, щелкнув правой кнопкой мыши существующий закрытый ключ в Keychain Access и выбрав запросить сертификат у Центра сертификации с "именем Вашего ключа".

к сожалению, это не удастся с "указанный элемент не может быть найден в Keychain", если вы и имейте соответствующий открытый ключ в связке ключей. Для этого нет технической причины-запрос подписи сертификата (CSR) может быть сгенерирован только из закрытый ключ-но Keychain Access не понимает этого.

у вас есть два варианта.

экспортируйте закрытый ключ и генерируйте CSR вручную

это быстрый вариант, который будет просто генерировать CSR, который вы можете загрузить в Apple.

  1. выберите закрытый ключ в Keychain Access, затем нажмите - Статьи Экспорта....
  2. сохраните файл в .p12 формат где-то, но помню путь. Эти инструкции предполагают, что он находится в вашем домашнем каталоге и называется exported.p12. Оставьте пароль пустым.
  3. откройте терминал и введите:

    openssl req -new -key <(openssl pkcs12 -in ~/exported.p12 -nocerts -nodes -passin pass:"") > new.certSigningRequest
    

    посмотреть [1] в конце этого сообщения для получения подробной информации о том, что происходит.

  4. нажмите Enter для каждого приглашения (Apple не заботится об этих значениях). Когда вы закончите, у вас будет .certSigningRequest подходит для загрузки на портал разработчиков Apple. Когда вы загружаете связанный сертификат, он будет соединяться с оригинальным закрытым ключом.

  5. удалить , так как он содержит материал закрытого ключа.

воссоздать открытый ключ так Keychain доступ счастлив

эта опция является долгосрочным исправлением, которое позволит вам генерировать CSRs из исходного ключа прямо из Keychain Access. Эти инструкции предполагают, что в настоящее время вы не можете использовать Keychain Access для этого, потому что вам не хватает соответствующего public версия вашего закрытого ключа. Вы можете проверить это, перейдя в категорию " ключи "в Keychain Access и ища" закрытый ключ "и" открытый ключ " с тем же именем.

  1. выберите закрытый ключ в Keychain Access, затем нажмите - Статьи Экспорта....
  2. сохраните файл в :
    security -v import public.pem -k ~/Library/Keychains/login.keychain
    

    вы должны увидеть " 1 импортированный ключ."

изменить ~/Library/Keychains/login.keychain если вы хотите импортировать на другой брелок. (Вы можете увидеть, где живет каждый брелок, перейдя к редактировать - Список Брелок в Keychain Access).

  1. откройте Keychain Access и найдите открытый ключ под названием "импортированный открытый ключ.- Дважды щелкните по нему и измените его название на то же, что и ваш первоначальный закрытый ключ.
  2. удалить exported.p12 и public.pem.

теперь вы можете щелкнуть правой кнопкой мыши исходный закрытый ключ и выбрать запросить сертификат у Центра сертификации с "именем вашего Ключ" для генерации CSR.

объяснениями

[1] Эта команда, разбиты:

openssl req -new  # Generate a new certificate signing request
  -key            # Instead of generating a key, use an existing one
  <(              # Put the output of the following command in a temporary file
                  # (a Bash feature, not specific to OpenSSL)
  openssl pkcs12 -in ~/exported.p12 # Read keys from the specified PKCS12 file
  -nocerts         # Don't output the certificate contained in the file
  -nodes           # Output the private key from the file
  -passin pass:""  # The password for the container is blank
  )
> new.certSigningRequest # Write the generated CSR to a file

[2] Вторая команда, разбиты:

openssl pkcs12 -in ~/exported.p12 # Read keys from the specified PKCS12 file
  -nocerts -nodes                 # Output only the private key, no certificates
| openssl rsa -pubout             # Compute the public key from a private key
> public.pem                      # Write the public key to a file

когда вы входите в профиль подготовки для включения / Настройки Push-уведомлений, первое, что он запрашивает, это CSR (сертификат подписи кода).

вы можете создать это с помощью существующей закрытый ключ из Keychain Access вместо создания нового.

просто откройте keychain access, а затем прокрутите и найдите предыдущий закрытый ключ (возможно, назвал ваше имя), а затем щелкните правой кнопкой мыши (два пальца) на нем и выберите Запрос A Сертификат от центра сертификации с "bla bla bla".

Я просто ввожу один и тот же адрес электронной почты в адрес электронной почты пользователя и адрес электронной почты CA и выбираю сохранить на диск.

затем загрузите это, чтобы создать свой .файлы CER