Jak stworzyć certyfikat P12 do dystrybucji iOS

106

Mamy aplikację na iOS, której certyfikat powiadomienia push wygasł i próbujemy utworzyć nowy. Utworzyłem nowe certyfikaty w portalu Provisioning (ios_developer.cer, ios_distribution.cer) i pobrałem je. Postępowałem zgodnie z instrukcjami tutaj na Stack Overflow, aby przekonwertować go na PEM, a następnie na pliki P12, ale utknąłem. Kiedy następnie próbuję przekonwertować PEM na P12, potrzebuje jakiegoś klucza prywatnego i nie wiem, skąd go wziąć.

Próbowałem też załadować je do Keychain Access. Czytałem, że można je stamtąd wyeksportować jako P12, ale kiedy robię import, nigdzie się nie pojawiają.

RobG
źródło

Odpowiedzi:

128

Twój klucz prywatny jest generowany podczas tworzenia żądania podpisania w aplikacji Dostęp do pęku kluczy. Po wygenerowaniu i pobraniu certyfikatu dwukrotne kliknięcie spowoduje dodanie go do Dostępu do pęku kluczy, gdzie zostanie dopasowany do klucza prywatnego. Następnie możesz wybrać certyfikat i otworzyć strzałkę, aby wybrać również klucz prywatny i wyeksportować je razem jako plik .p12 z aplikacji Dostęp do pęku kluczy.

picciano
źródło
12
Nieważne; domyśliłam się. Człowieku, nic dziwnego, że ludzie mają z tym taki problem ... to jest mylące!
RobG
14
Byłoby miło, ale p12 jest dla mnie wyszarzony :(
Rob
14
@Rob, musisz wybrać klucz prywatny, a nie cały certyfikat. W pękach kluczy w lewym górnym rogu wybierz „Zaloguj się”, a następnie poniżej w kategorii wybierz „certyfikaty”. Zobaczysz, że certyfikat ma teraz strzałkę upuszczania, kliknij go, a klucz prywatny pokaże kliknięcie prawym przyciskiem i wyeksportuje kapelusz jako plik .p12
tutts
6
Nie otrzymuję też opcji rozwijanej. Po pobraniu dwukrotnie kliknąłem certyfikat i pojawia się on w pęku kluczy logowania, ale nie pod kluczem prywatnym. Widzę to tylko w sekcji Certyfikaty, nie ma połączenia między kluczem a certyfikatem, który widzę.
setherj,
6
to samo tutaj. Brak listy rozwijanej, p12 wyszarzone
trainoasis
76

Pliki .p12 służą do publikowania aplikacji w sklepie Apple App Store

A. Utwórz plik CSR (.certSigningRequest)

  1. Otwórz dostęp do pęku kluczy z narzędzi
  2. Z paska narzędzi Dostęp do pęku kluczy wybierz Dostęp do pęku kluczy -> Preferencje
  3. W wyskakującym okienku wybierz zakładkę Certyfikaty
  4. Ustaw zarówno „Online Certificate Status Protocol”, jak i „Certificate Revocation List” na „Off”
  5. Zamknij to okno
  6. Teraz na pasku narzędzi otwórz Dostęp do pęku kluczy> Asystent certyfikatu> Poproś o certyfikat z urzędu certyfikacji
  7. Wprowadź adres e-mail i imię i nazwisko użyte do rejestracji w programie dla programistów iOS
  8. Pozostaw adres e-mail urzędu certyfikacji pusty i wybierz „Zapisano na dysku” i „Pozwól mi określić informacje o parze kluczy”
  9. Kliknij Kontynuuj
  10. Wybierz nazwę pliku i miejsce docelowe na dysku twardym
  11. Kliknij Zapisz
  12. W następnym oknie ustaw „ Rozmiar klucza” na „2048 bitów”
  13. Ustaw „Algorytm” na „RSA”
  14. Kliknij Kontynuuj

Spowoduje to utworzenie i zapisanie pliku certSigningRequest (CSR) na dysku twardym. Klucz publiczny i prywatny zostaną również utworzone w programie Dostęp do pęku kluczy z wprowadzoną nazwą zwykłą.

B. Utwórz plik „.cer” na koncie programisty iOS

  1. Zaloguj się na konto programisty Apple Kliknij „Certyfikaty, identyfikatory i profile”
  2. Kliknij „Profile obsługi administracyjnej”
  3. W sekcji „Certyfikaty” kliknij „Produkcja”
  4. Kliknij przycisk „Dodaj” (+) w prawym górnym rogu panelu głównego
  5. Teraz wybierz „App Store i Ad Hoc”
  6. Kliknij Kontynuuj
  7. Kliknij „Wybierz plik” i znajdź plik CSR utworzony z dysku twardego
  8. Kliknij Generuj
  9. Kliknij Pobierz, aby pobrać plik

C. Zainstaluj .cer i wygeneruj certyfikat .p12

  1. Znajdź pobrany plik .cer i kliknij dwukrotnie
  2. Ustaw menu rozwijane Login na „login” i kliknij Dodaj
  3. Otwórz dostęp do KeyChain, a znajdziesz profil utworzony w kroku A.
  4. Możesz rozwinąć profil „klucza prywatnego” (pokazuje dodany certyfikat)
  5. Wybierz tylko te dwa elementy (nie klucz publiczny)
  6. Kliknij prawym przyciskiem myszy i kliknij „Eksportuj 2 elementy…” w wyskakującym okienku
  7. Teraz upewnij się, że format pliku to „.p12” i wybierz nazwę pliku oraz miejsce docelowe na dysku twardym
  8. Kliknij Zapisz. Teraz zostaniesz poproszony o ustawienie hasła, ale pozostaw oba puste
  9. Kliknij OK. Teraz masz plik .p12 na dysku twardym

Zwróć uwagę, że jeśli problem nadal występuje, spróbuj również wykonać poniższe czynności:

Jeśli Twój pęk kluczy jest obecny w iCloud, usuń całą zawartość pęku kluczy z iCloud i przeprowadź nową konfigurację w iCloud To powinno działać.

Jayprakash Dubey
źródło
przypadkowo usunąłem klucz prywatny z łańcucha kluczy. więc teraz nie mogę zobaczyć klucza prywatnego pod certyfikatem. mam plik CSR jak ponownie zainstalować klucz prywatny z CSR?
Avijit Nagare
1
Naprawdę ciężko było mi zrozumieć proces generowania pliku .p12 przez Apple, ponieważ jestem facetem z Windows Phone i ten post naprawdę pomógł mi to zrozumieć.
Mohammed Aamir K
1
Bardzo przydatne instrukcje. Wielkie dzięki. Zaoszczędziło to dużo czasu.
Alix
Po co wyłączać „Online Certificate Status Protocol” i drugi?
Nate
1
Rozwiązałem ten problem. Aby wyjaśnić, co zrobiłem: Upewnij się, że Twój pęku kluczy nie pojawia się w iCloud. Gdy już się tam znajdzie, istnieje ryzyko, że problem wystąpi powyżej. Odinstalowałem wszystko, wykonałem nową konfigurację bez korzystania z danych w moim iCloud, a potem zadziałało.
Nazar Medeiros
32

OK, problem rozwiązany! wygląda na to, że dwukrotne kliknięcie certyfikatu powoduje automatyczne zainstalowanie go w pęku kluczy SYSTEM - nie wiem dlaczego. Zamiast tego po prostu przeciągam i upuszczam certyfikat do pęku kluczy LOGIN i wszystko jest w porządku. Dzięki temu artykułowi -> Dodawanie certyfikatów do pęku kluczy i generowanie plików w formacie .p12 - alon rosenfeld 10 miesięcy temu

Abraham Lopez
źródło
1
Och, wow. Spędziłem godziny, próbując to rozgryźć. Zmarnowałbym kolejny tydzień, gdyby nie ta odpowiedź.
B Seven
1
Dziękuję bardzo. Zmarnowałem godziny, próbując to rozgryźć.
SaltedBlowfish
1
Tak, stracone godziny, zaoszczędzone :)
Sahan
29

nie otrzymasz opcji rozwijania, chyba że przefiltrujesz, wybierając (Certyfikaty) z lewego dolnego rogu łańcucha kluczy

albaiti
źródło
5

Aby pobrać plik p12, przejdź w ten sposób ...

Krok 1. W XCode > Przejdź do ustawień projektu > Ogólne > Podpisanie section> podpisania certyfikatu

Zobacz, którego certyfikatu używasz dla tej konkretnej aplikacji, jak pokazano na poniższym obrazku

wprowadź opis obrazu tutaj

Krok 2. Otwórz pęku kluczy > w lewej dolnej sekcji Kategoria > Certyfikaty

Poszukaj certyfikatu i otwórz dziecko, klikając strzałkę w dół, jak pokazano na obrazku

wprowadź opis obrazu tutaj

Krok 3. Kliknij prawym przyciskiem myszy i wyeksportuj jako „Certificates.p12”, podając swoje hasło, np. „123456”

swiftBoy
źródło
Nie mam tej strzały do ​​rozszerzenia
Nazar Medeiros
3

Dla każdego, kto nadal ma ten problem, rozwiązaniem dla mnie było NIE wybranie obu i „Eksportuj 2 elementy” (klucz i certyfikat) - raczej po prostu wyeksportuj certyfikat, który JUŻ zawiera klucz. Od 2016 roku myślę, że jest to sposób na zrobienie tego, ponieważ poprzednie przesłane pliki, które działały z elementami eksportu 2, już nie działają.

Jessicardo
źródło
Nie mogę wyeksportować samego certyfikatu jako p12 - czy na pewno to właściwy sposób?
Cecil Rodriguez
To samo tutaj. To jest bardzo ważne.
Gautam Jain