відсутній приватний ключ у сертифікаті розповсюдження на брелоку


170

У мене є така проблема, яку я не міг знайти ніде вирішити. В основному у нас є обліковий запис розробника компанії (а не підприємство), і для того, щоб подати додаток, я попросив керівника нашої команди надіслати мені сертифікат розповсюдження та створити та надіслати мені профіль надання дистрибуції.

З профілем розробника все працює добре, але коли я встановив cert та профіль надання, я не побачив профіль розподілу на Xcode, а також не маю приватного ключа під dist cert у брелоку.

Хтось знає, як це вирішити? Я в різних місцях читав, що мені потрібно буде відкликати сертифікат і створити новий, але я не можу це зробити, оскільки в компанії є маса додатків, і я не можу відкликати його для всіх.


2
Час відсутній приватний ключ, оскільки ми намагаємося створити сертифікати за допомогою .CSR, які були створені на будь-якій іншій машині. Отже, переконайтеся, що ваш файл CSR також повинен бути створений на тій же машині, де ви намагаєтеся створити та встановити сертифікат.
Або

2
У моєму випадку в моєму брелоку є два однакових сертифікати підпису ... Це вирішено просто видалити один з них ... Про всяк випадок ...
juanram0n

Відповіді:


167

введіть тут опис зображенняАх, це поширене питання, рішення просте:

Хто коли-небудь створив облікові дані розробника, спочатку потрібно перейти до брелка на своєму комп’ютері та клацнути правою кнопкою миші на клавішах для приватного та державного та експортувати ключ у файл. Тоді ви просто завантажите цей файл на свій комп’ютер і відкрийте його, і він буде доданий у вашу брелок.

Потрібно мати як приватний ключ (.pem файл), так і сертифікат для своїх профілів резервування.


36
Щоб бути більш конкретним, вам потрібен (експортований) файл .p12
mkral

7
@Nirma Що робити, якщо у нас немає доступу до того комп'ютера, з якого були створені початкові дані розробника.
Нішад Арора

@NishadArora Вам доведеться створити новий ключ. Немає можливості використовувати його без приватного ключа. АФАЙК
Джошуа Пінтер

2
@Nirma Як створити нові один
Мучжу

70

Поки ви все ще маєте доступ до Mac, який використовувався для створення оригінального сертифіката дистрибуції, це дуже просто.

Просто скористайтеся програмою Keychain Access цього Mac для експорту сертифікату та приватного ключа. Виберіть обидва, використовуючи shift або команду та клацніть правою кнопкою миші, щоб експортувати у файл .p12.

Додано скріншот, щоб це було дуже зрозумілим.

Імпортуйте у свій Mac файл .p12, і ви добре переходите (просто переконайтеся, що у вас є дійсний профіль забезпечення).

Просто виберіть експорт


55

Щоб додати відповіді інших людей, якщо ви більше не маєте доступу до цього приватного ключа, відновитись і запустити його можна досить просто:

  1. анулює ваш активний сертифікат на порталі резервування
  2. створити новий сертифікат розробника (доступ до брелоку /.../ запит на csr ... тощо)
  3. завантажити та встановити новий сертифікат
  4. створити новий профіль резервування для існуючого ідентифікатора програми (на порталі надання)
  5. завантажте та встановіть новий профіль надання та в налаштуваннях встановіть відповідні особи підпису коду

13
Тут у моєї компанії завжди безлад, ніхто не знає, в якому комп’ютері був створений певний сертифікат. Просто краще відкликати та відтворювати
user2387149

1
@ user2387149 Я тут 6 років потому, щоб запропонувати CI / CD зробити такі речі і забути про розповсюдження через xCode.
Едгар Салазар

якщо я вже завантажив сертифікат розповсюдження, я його відкликав, а потім повторно вимагав його знову. чи слід видалити старий сертифікат розповсюдження?
kafinsalim

14

Видаліть існуючий з KeyChain, дістаньте і додайте .p12 файл у ваш mac, звідки створено сертифікат.

Щоб отримати .p12 з вихідного Mac, перейдіть до KeyChain, розгорніть сертифікат, виберіть обоє та експортуйте 2 елементи. Це збереже .p12 файл у вашому місці:

введіть тут опис зображення


8

У моєму випадку я втратив усі приватні ключі у своєму брелоку, нові імпортовані правильно, але приватний ключ також не відображається. Єдине, що допомогло, - це створити новий CertificateSigningRequest


6

Після зміни Mac, який не є тим, хто створив сертифікат на розподіл, вам не вистачить приватного ключа. Просто видаліть сертифікат походження та створіть новий, який працює для мене ~


5

Коли я намагаюся завантажити збірку iOS для перевірки польоту, тоді з’явилася помилка.

"Missing privacy key".

введіть тут опис зображення

Всього 2 кроки для виправлення цієї помилки.

  1. Видаліть старий сертифікат з developer.apple.com
  2. Створіть новий сертифікат від Xcode або developer.apple.com

Моя проблема вирішена (я використовую Xcode 9.4.1).

Перевірте, Xcode створив новий сертифікат.

введіть тут опис зображення


5

Для людини , який перелякані на повторне створення AppStore розподілу сертифікатів Apple , документація говорить:

Важливо: Повторне створення сертифікатів розробки чи розповсюдження не впливає на програми, які ви надіслали в App Store, а також не впливає на вашу здатність оновлювати їх.

Але це впливає на програми для екосистеми Apple Developer Enterprise .


4
це робиться, якщо у вас є обліковий запис підприємства!
MobileMon

За "екосистемою підприємства" .... Для напр. ти говориш про те, якщо ти працюєш у великій компанії, і 100 розробників мають приватний ключ для конкретної програми?
петросмм

2

У меню> Visual Studio (mac)> Налаштування> Публікація> Облікові записи розробників Apple> [Виберіть ідентифікатор яблука]> Переглянути деталі> Створити сертифікат

Щоб видалити невикористані / недійсні сертифікати, перейдіть на веб-сайт: https://developer.apple.com/account/resources/certificate/list

видаліть там будь-який небажаний сертифікат

Далі потрібно створити ідентифікатор додатка (ідентифікатори), перейдіть на веб-сайт:
https://developer.apple.com/account/resources/identifiers/list

Далі перейдіть на веб-сайт, щоб створити профілі резервування:
https://developer.apple.com/account/resources/profiles/add

використовуйте сертифікат, щоб зв’язати свій ідентифікатор програми.

Далі слід завантажити профілі:
На вашому mac> У меню> Visual Studio (mac)> Налаштування> Публікація> Облікові записи розробників Apple> [Виберіть ідентифікатор яблука]> Переглянути деталі> Завантажити всі профілі


1

Я отримав доступ до цього сертифіката на веб-сайті розробника Apple, і після завантаження його відкрив. Так само під час відкриття у мене з’явилося невелике вікно із запитанням, чи хочу я додати сертифікат до брелка. Щойно натиснув "додати", і помилка "відсутній приватний ключ" пішла.


1

Я потрапив у цю ситуацію ("Відсутній приватний ключ") після того, як Xcode не вдалося створити новий сертифікат розповсюдження - сталася невідома помилка.

Потім я намагався отримати приватний ключ або створити новий сертифікат. Від менеджера сертифікатів у Xcode я отримав дивні помилки на кшталт "Введена вами парольна фраза є неправильною". Але це навіть не просило мене жодної фрази.

Що мені допомогло:

  1. Анулюйте всі непрацюючі сертифікати розповсюдження на developer.apple.com
  2. Перезавантажте мій Mac

Після цього Xcode змогла створити новий сертифікат розповсюдження, і приватного ключа не було.

Урок: Перезавантажте комп'ютер так само, як і Windows;)


0

Перевірте, чи використовуєте ви для входу чи ні для додавання сертифікатів, якщо ви перебуваєте в системі вгорі ліворуч, ми не зможемо це побачити.

Тож перетягніть .cer у вхід, а потім перевірте, чи можете ви отримати приватний ключ чи ні.


0

Просто пролити трохи світла на це.

Після того як я видалив свій сертифікат p12 з Keychain. Я знову завантажив власний сертифікат з порталу розробників Apple.

Мені вдалося лише завантажити сертифікат. Але для підписання вам потрібен і приватний ключ. Тож ви або:

  • експортуйте і приватний ключ, і сертифікат з Keychain, щоб отримати його.

  • Завантажте запит на підпис сертифіката та створіть нові сертифікати

Цей сертифікат сам по собі не має значення для цілей підписання. Я здогадуюсь, що приватний ключ створюється брелоком в той момент, коли ви "запитаєте сертифікат у сертифікаційного органу", але він не показується вам, поки ви не додасте його сертифікат на прив'язку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.