Моєю метою було створити CSR (запит на підписання сертифікату), використовуючи мій приватний ключ, щоб подати Apple, щоб створити новий сертифікат розповсюдження iPhone. Я переконався, що Сертифікати - обрана категорія зліва. Я спробував правою кнопкою миші натиснути свій приватний ключ та натиснути на запит на отримання сертифіката від органу сертифікації із імпортованим приватним ключем, і я отримав таку помилку, коли намагаюся зберегти його.
Вказаний елемент не вдалося знайти в брелоку.
Я також отримав таку ж помилку, коли перейшов через меню файлів: Keychain Access > Certificate Assistant
Що я зібрав з інших джерел Інтернету, це те, що Keychain Access НЕ дозволяє вам створити новий КСВ, якщо ви імпортували приватний ключ, лише якщо ви створили ключ локально з інструменту.
Замість цього я експортував приватний ключ та використовував openssl для створення нового CSR, який Apple прийняв, і тепер посилається на новий імпортований приватний ключ.
Експорт приватного ключа
- Клацніть правою кнопкою миші приватний ключ
- Експорт
- Переконайтесь, що вибрано формат файлу p12
- Зберегти
- Введіть пароль (необов’язково)
- Дозволити доступ до ключа експорту
- Відкрийте термінал та перейдіть до експортованого каталогу
- Витяг ключа з контейнера p12
Будьте уважні, оскільки приватний ключ .pem більше не захищений паролем)
$ openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes
Enter Import Password: ********************
MAC verified OK
Створення нового КСВ із експортованим приватним ключем
$ 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)
- Все інше повинно бути порожнім
Підтвердьте свою КСВ
$ 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, дочекатися генерації сертифікату, а потім встановити його. Після імпорту нового сертифікованого сертифіката ви побачите, що він посилається на старий сертифікат, який ви експортували вище.