brak klucza prywatnego w certyfikacie dystrybucyjnym pęku kluczy

170

Mam następujący problem, na który nigdzie nie mogłem znaleźć rozwiązania. Zasadniczo mamy firmowe konto programisty (nie przedsiębiorstwo), więc w celu przesłania naszej aplikacji poprosiłem naszego kierownika zespołu o przesłanie mi certyfikatu dystrybucji oraz utworzenie i przesłanie mi profilu udostępniania dystrybucji.

Z profilem programisty wszystko działa dobrze, ale kiedy zainstalowałem certyfikat i profil informacyjny, nie widziałem profilu dystrybucji w Xcode ani nie mam klucza prywatnego pod certyfikatem dist w pęku kluczy.

Czy ktoś wie, jak to rozwiązać? Przeczytałem w miejscach różnic, że będę musiał unieważnić certyfikat i utworzyć nowy, ale tak naprawdę nie mogę tego zrobić, ponieważ mamy w firmie kilka aplikacji i nie mogę unieważnić go dla wszystkich.

moshikafya
źródło
2
Czasami brakuje klucza prywatnego, ponieważ próbujemy utworzyć certyfikaty z .CSR, które zostały utworzone na dowolnym innym komputerze. Więc upewnij się, że twój plik CSR powinien również zostać utworzony na tym samym komputerze, na którym próbujesz utworzyć i zainstalować certyfikat ... lub możesz użyć .p12 certyfikatów, aby uniknąć tego problemu
MAhipal Singh
2
W moim przypadku mam dwa identyczne certyfikaty podpisu w moim pęku kluczy ... Rozwiązało się po prostu usunięcie jednego z nich ... Na wszelki wypadek ...
juanram0n

Odpowiedzi:

167

wprowadź opis obrazu tutajAhh to częsty problem, rozwiązanie jest proste:

Kto kiedykolwiek utworzył poświadczenia programisty, musi pierwotnie przejść do pęku kluczy na swoim komputerze i kliknąć prawym przyciskiem myszy klucz (y) prywatny i publiczny, a następnie wyeksportować klucz do pliku. Następnie po prostu pobierz ten plik na swój komputer i otwórz go, a zostanie on dodany do pęku kluczy.

Musisz mieć zarówno klucz prywatny (plik .pem), jak i certyfikat dla swoich profili udostępniania.

Nirma
źródło
36
Mówiąc dokładniej, jest to plik .p12, którego potrzebujesz (wyeksportowany)
mkral
7
@Nirma Co zrobić, jeśli nie mamy dostępu do komputera, z którego zostały pierwotnie utworzone poświadczenia programisty.
Nishad Arora
@NishadArora Będziesz musiał utworzyć nowy klucz do użycia. Nie ma możliwości korzystania z niego bez klucza prywatnego. AFAIK
Joshua Pinter
2
@Nirma Jak stworzyć nowy
Muju
70

Dopóki nadal masz dostęp do komputera Mac, który został użyty do wygenerowania oryginalnego certyfikatu dystrybucyjnego, jest to bardzo proste.

Po prostu użyj aplikacji Keychain Access tego Maca, aby wyeksportować zarówno certyfikat, jak i klucz prywatny. Wybierz oba za pomocą klawisza Shift lub polecenia i kliknij prawym przyciskiem myszy, aby wyeksportować do pliku .p12.

Dołączono zrzut ekranu, aby był bardzo jasny.

Zaimportuj ten plik .p12 na komputerze Mac i gotowe (upewnij się, że masz prawidłowy profil obsługi administracyjnej).

Po prostu wybierz eksport

eladleb
źródło
55

Aby dodać odpowiedzi innych osób, jeśli nie masz już dostępu do tego klucza prywatnego, przywrócenie i uruchomienie kopii zapasowej jest dość proste:

  1. unieważnij swój aktywny certyfikat w portalu obsługi administracyjnej
  2. utwórz nowy certyfikat programisty (dostęp do pęku kluczy /.../ wniosek o csr ... itd.)
  3. pobierz i zainstaluj nowy certyfikat
  4. utwórz nowy profil aprowizacji dla istniejącego identyfikatora aplikacji (w portalu obsługi administracyjnej)
  5. pobierz i zainstaluj nowy profil informacyjny, aw kompilacji ustawienia określ odpowiednie tożsamości podpisywania kodu
mkral
źródło
13
U mnie w firmie zawsze panuje bałagan, nikt nie wie, w którym komputerze powstał określony certyfikat. Po prostu lepiej cofnąć i odtworzyć
user2387149
1
@ user2387149 Jestem tutaj 6 lat później, aby zasugerować CI / CD zrobienie tego rodzaju rzeczy i zapomnieć o dystrybucji przez xCode.
Edgar Salazar
jeśli już pobrałem certyfikat dystrybucyjny, unieważniłem go i ponownie zażądałem. czy powinienem usunąć stary certyfikat dystrybucyjny?
kafinsalim
14

Usuń istniejący z KeyChain, pobierz i dodaj plik .p12 do komputera Mac, z którego utworzono certyfikat.

Aby pobrać .p12 ze źródłowego komputera Mac, przejdź do KeyChain, rozwiń certyfikat, wybierz oba i wyeksportuj 2 elementy. Spowoduje to zapisanie pliku .p12 w Twojej lokalizacji:

wprowadź opis obrazu tutaj

Jamshed Alam
źródło
8

W moim przypadku zgubiłem wszystkie klucze prywatne w moim pęku kluczy, nowe zostały poprawnie zaimportowane, ale nie pokazują również klucza prywatnego. Jedyną rzeczą, która pomogła, było wygenerowanie nowego certyfikatu CertificateSigningRequest

JakubKnejzlik
źródło
6

Po zmianie komputera Mac, który nie jest tym, który utworzył certyfikat podziału, utracisz klucz prywatny. Po prostu usuń certyfikat pochodzenia i utwórz nowy, który działa dla mnie ~

Michael Yang
źródło
5

Kiedy próbuję załadować kompilację iOS do testowego lotu, pojawił się błąd.

"Missing privacy key".

wprowadź opis obrazu tutaj

Tylko 2 kroki, aby naprawić ten błąd.

  1. Usuń stary certyfikat z developer.apple.com
  2. Utwórz nowy certyfikat z Xcode lub developer.apple.com

Mój problem został rozwiązany (używam Xcode 9.4.1).

Sprawdź, czy Xcode utworzył nowy certyfikat.

wprowadź opis obrazu tutaj

Vivek
źródło
5

Dla osób, które boją się ponownego stworzenia certyfikatu dystrybucyjnego AppStore, dokumentacja Apple mówi:

Ważne: ponowne utworzenie certyfikatów deweloperskich lub dystrybucyjnych nie ma wpływu na aplikacje przesłane do App Store ani nie wpływa na możliwość ich aktualizowania.

Ale ma to wpływ na aplikacje dla ekosystemu Apple Developer Enterprise .

Ramis
źródło
4
tak, jeśli masz konto firmowe!
MobileMon
Według „systemu ekosystemu przedsiębiorstwa”… Na przykład. czy mówisz o tym, czy pracujesz w dużej firmie, a 100 programistów ma ten klucz prywatny do tej konkretnej aplikacji?
petrosmm
2

W menu> Visual Studio (Mac)> Preferencje> Publikowanie> Konta deweloperów Apple> [Wybierz identyfikator Apple]> Wyświetl szczegóły> Utwórz certyfikat

Aby usunąć nieużywane / nieprawidłowe certyfikaty, przejdź do witryny: https://developer.apple.com/account/resources/certificates/list

usuń tam niechciane certyfikaty

Następnie utwórz identyfikator aplikacji (identyfikatory), przejdź do strony:
https://developer.apple.com/account/resources/identifiers/list

Następnie przejdź do witryny internetowej, aby utworzyć profile obsługi administracyjnej:
https://developer.apple.com/account/resources/profiles/add

użyj certyfikatu do powiązania z identyfikatorem aplikacji.

Następnie należy pobrać profile:
Na komputerze Mac> W menu> Visual Studio (mac)> Preferencje> Publikowanie> Konta deweloperów Apple> [Wybierz identyfikator Apple ID]> Wyświetl szczegóły> Pobierz wszystkie profile

mjb
źródło
1

Uzyskałem dostęp do tego certyfikatu w witrynie deweloperskiej firmy Apple i po pobraniu go otworzyłem. Podobnie po otwarciu pojawiło się małe okienko z pytaniem, czy chcę dodać certyfikat do pęku kluczy. Po prostu kliknąłem „dodaj” i błąd „brakującego klucza prywatnego” zniknął.

ISS
źródło
1

Wpadłem w tę sytuację („Brak klucza prywatnego”) po tym, jak Xcode nie utworzył nowego certyfikatu dystrybucyjnego - wystąpił nieznany błąd.

Następnie starałem się uzyskać klucz prywatny lub wygenerować nowy certyfikat. Od menedżera certyfikatów w Xcode otrzymałem dziwne błędy, takie jak „Podane hasło jest nieprawidłowe”. Ale nawet nie poprosił mnie o żadne hasło.

Pomogło mi:

  1. Odwołaj wszystkie niedziałające certyfikaty dystrybucyjne na developer.apple.com
  2. Uruchom ponownie komputer Mac

Następnie Xcode był w stanie utworzyć nowy certyfikat dystrybucyjny i nie brakowało żadnego klucza prywatnego.

Wyciągnięta lekcja: Uruchom ponownie komputer Mac tak samo jak Windows;)

Štěpán Havránek
źródło
0

Sprawdź, czy korzystasz z logowania, czy nie, aby dodać certyfikaty, jeśli sprawdzasz w Systemie w lewym górnym rogu, nie będziemy mogli go zobaczyć.

Więc przeciągnij i upuść .cer do logowania, a następnie sprawdź, czy jesteś w stanie uzyskać klucz prywatny, czy nie.

Priyanka
źródło
0

Żeby rzucić na to trochę światła.

Po usunięciu mojego certyfikatu p12 z pęku kluczy. Ponownie pobrałem własny certyfikat z portalu dla programistów Apple.

Mogłem tylko pobrać certyfikat. Ale do podpisania potrzebujesz również klucza prywatnego. Więc albo:

  • wyeksportuj klucz prywatny i certyfikat z pęku kluczy, aby je uzyskać.

  • Prześlij żądanie podpisania certyfikatu i wygeneruj nowe certyfikaty

Ten certyfikat sam w sobie nie ma wartości do celów podpisywania. Domyślam się, że klucz prywatny jest tworzony przez pęku kluczy w momencie, gdy „zażądasz certyfikatu od urzędu certyfikacji”, ale nie zostanie Ci wyświetlony, dopóki nie dodasz jego certyfikatu wiążącego.

kochanie
źródło