2010-12-29 13 views
24

Ze względów estetycznych chciałbym użyć tego samego klucza prywatnego, którego użyłem do stworzenia mojego certyfikatu dystrybucji jakiś czas temu, aby utworzyć nowy certyfikat programisty (mój stary wygasł). Ale "Jak utworzyć certyfikat programistyczny:" na portalu udostępniania systemu iOS wymaga użycia klucza dostępu do pęku kluczy do utworzenia nowego klucza. Kiedy próbuję wykonać Dostęp do pęku kluczy> Asystent certyfikatu> Zażądaj certyfikatu od ośrodka certyfikacji "(moja nazwa klucza)" Asystent certyfikatu nie tworzy pliku CSR.Jak mogę użyć istniejącego klucza prywatnego do nowego certyfikatu programistycznego iOS?

Czy ktoś wie, czy można to zrobić, a jeśli tak, to w jaki sposób?

+0

Rozważmy poniższy moją odpowiedź, co faktycznie zapewnia niezbędną openssl poleceń –

+0

@simon ... Mam CSR z me..shall zażądać certyfikatu z tym samym teraz? – Saty

Odpowiedz

47

Najpierw musiałem wyeksportować klucza prywatnego z pęku kluczy w postaci pliku p12. Próbowałem tego skryptu, ale nie udało się.

  1. Otwarte pęk kluczy i wybierz swój klucz prywatny
  2. prawym przyciskiem myszy i wybierz polecenie „Eksportuj”
  3. Użyj typ pliku p12.

Uruchom następującą komendę openssl, aby przekonwertować plik p12 chroniony hasłem na plik pem. openssl poprosi o hasło.

openssl pkcs12 -in your-newly-exported-p12-file.p12 -out your-newly-exported-p12-file-as-a-pem.pem -nodes 

Uruchom następujące polecenie na pliku PEM, aby wygenerować csr.

openssl req -new -key your-newly-exported-p12-file-as-a-pem.pem -out your-csr-to-submit-to-apple.csr 
+1

Działa świetnie. Openssl poprosi Cię o kilka metadanych. Dostarczyłem swój e-mail, ale nic więcej. Profile generowania nadal wyświetlają się "wygasły" po wygenerowaniu nowego certyfikatu.Aby je odnowić, kliknij "Modyfikuj", upuść pole "Identyfikator aplikacji" i wybierz to samo, co już wybrane (ładny wzór Apple), i kliknij "Zapisz". – DougW

+0

Dzięki ... Próbowałem uzyskać powiadomienia Push w aplikacji na iPhone'a, a po utworzeniu Certyfikatu w Profilu Provisioning i pobraniu go, dodałem go do Dostępu do pęku kluczy. Następnie wybieram ZARÓWNO dodany właśnie certyfikat I klucz prywatny użyty do utworzenia certyfikatu CSR, a następnie kliknij prawym przyciskiem myszy i kliknij Eksportuj 2 elementy jako p12. Następnie użyłem linii "openssl pkcs12" powyżej, aby przekonwertować z p12 na pem, który może być użyty do wysyłania powiadomień push. – jsherk

+0

dziękuję, dziękuję bardzo, naprawdę, oszczędzasz mój czas :) Kciuki w górę –

2

Są komfortowe z OpenSSL i wiersza polecenia? Na liście adresowej znajduje się numer discussion dotyczący ręcznego tworzenia CSR. FWIW, nie byłem w stanie stworzyć CSR za pomocą wybranego klucza w Keychain Access/Certificate Assistant.

+0

Dzięki temu wygląda świetnie i bardzo prosto. Wypróbuję to następnym razem, gdy będę musiał zrobić CSR. –

+0

Rozważ moją odpowiedź poniżej, która faktycznie zapewnia niezbędne polecenia openssl. –

4

Aby wygenerować CSR z istniejącego klucza prywatnego w Keychain Access, kliknij prawym przyciskiem myszy (dwoma palcami kliknięcie) na prywatnym kluczem, którego chcesz użyć i wybierz zażądać certyfikatu z Certificate Authority z " (My Key Name)”

następnie wpisz adres e-mail użytkownika i adres email CA (i po prostu użyć tego samego adresu e-mail dla obu), a następnie wybrać zapisane na dysku.

+0

Przypominam sobie, że czytałem gdzieś, że to nie działa z portalem Apple. –

+0

Działa dla mnie! :) – jsherk

+0

Próbowałem już wiele razy i to nie działa. Ale widocznie dla niektórych. (zaznaczone na wypadek, gdyby inni mieli ten sam frustrujący problem) – sandstrom

0

przeszedłem tego piekła dzisiaj. Chciałem zautomatyzować eksport klucza, aby utworzyć CSR za pomocą linii poleceń. Znalazłem narzędzie napisane w c, które obiecało, co chcę: keychain_access. Skompilowałem to i odtwarzałem, ale nie mogłem wyeksportować klucza dystrybucyjnego. Stworzyłem narzędzie ponownie od zera z najnowszym interfejsem API bezpieczeństwa Apple i funkcją drukowania atrybutów na pęku kluczy, ale nadal nie udało się znaleźć klucza według etykiety. Udało mi się go wymienić bez wyszukiwania etykiet. W rozpaczliwej próbie zmieniłem nazwę na klucz w narzędziu dostępu do pęku kluczy i zmieniłem nazwę na stare. Potem moje narzędzie ostatecznie podnosi klucz według etykiety. Kliknięcie prawym przyciskiem myszy REQUEST A CERTIFICATE FROM A CERTIFICATE AUTHORITY WITH "(My Key Name)" również zaczęło działać. Wygląda na to, że nazwa została zapisana w innym kodowaniu lub coś podobnego. Jabłka, które nie mają dostępu do pęku kluczy, były w stanie znaleźć klucz!