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ą.

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.


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ć.


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


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


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”


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ą.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.