Моя цель состояла в том, чтобы создать CSR (запрос на подпись сертификата) с использованием моего существующего закрытого ключа для отправки в Apple для создания нового сертификата распространения iPhone. Я убедился, что Сертификаты были выбранной категорией слева. Я попытался щелкнуть правой кнопкой мыши свой закрытый ключ и нажать " Запросить сертификат у центра сертификации с импортированным закрытым ключом" и получил следующую ошибку при попытке сохранить его.
Указанный элемент не может быть найден в связке ключей.
Я также получил ту же ошибку, когда прошел через меню файлов: Связка ключей > Помощник по сертификатам
Из других источников в Интернете я узнал, что Keychain Access НЕ позволяет вам создавать новый CSR, если вы импортировали закрытый ключ, только если вы создали ключ локально из инструмента.
Вместо этого я экспортировал закрытый ключ и использовал openssl для создания нового CSR, который Apple приняла и теперь ссылается на новый импортированный закрытый ключ.
Экспорт закрытого ключа
- Щелкните правой кнопкой мыши закрытый ключ
- Экспорт
- Убедитесь, что выбран формат файла p12
- Сохранить
- Введите пароль (необязательно)
- Разрешить доступ к экспортному ключу
- Откройте Терминал и перейдите в экспортированный каталог.
- Извлечь ключ из контейнера p12
Будьте осторожны, так как закрытый ключ .pem больше не защищен паролем)
$ openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes
Enter Import Password: ********************
MAC verified OK
Создание нового CSR с экспортированным закрытым ключом
$ openssl req -out Certificates.csr -key Certificates.pem -new
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:.
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (e.g. server FQDN or YOUR name) []:John Doe Dev Key
Email Address []:thon@example.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Пара замечаний:
- Войти . если вы хотите, чтобы поле было пустым, или по умолчанию будет включать все, что указано в скобках [].
- Общее имя (CN) должно быть вашим именем закрытого ключа (например, John Doe Dev Key).
- Адрес электронной почты должен быть вашим адресом электронной почты (например, thon@example.com)
- Все остальное должно быть пустым
Подтвердите свой CSR
$ openssl req -noout -text -in Certificates.csr
Certificate Request:
Data:
Version: 0 (0x0)
Subject: CN=John Doe Dev Key/emailAddress=thon@example.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)
Modulus (2048 bit):
…
Exponent: 65537 (0x10001)
Attributes:
a0:00
Signature Algorithm: sha1WithRSAEncryption
…
То, о чем вам следует позаботиться, находится в строке « Тема» и убедитесь, что это правильно.
Теперь все, что вам нужно сделать, это отправить его в Apple, дождаться генерации сертификата и затем установить его. После импорта созданного сертификата вы увидите, что он будет ссылаться на старый сертификат, который вы экспортировали выше.