Błąd podczas próby uzyskania certyfikatu: nie można znaleźć określonego elementu w pęku kluczy


111

Miałem problem z kodowaniem moich aplikacji, więc usunąłem wszystkie klucze z pęku kluczy. Następnie przeszedłem do Certificate Assistant => Poproś o certyfikat z urzędu certyfikacji (aby stworzyć CSR dla nowego certyfikatu).

Więc podaj mój adres e-mail, a oto co otrzymam:

Nie można znaleźć określonego elementu w pęku kluczy.

Co ja robię źle?

PS Kiedy próbuję utworzyć urząd certyfikacji, pojawia się ten sam błąd.


1
Otrzymuję ten sam błąd. Proszę, czy możesz rozwinąć swoją odpowiedź lub kogoś, kto wie, jak to zrobić
Iducool

9
Ponowne uruchomienie KeyChain Access zadziałało dla mnie :)
Mohit Padalia

1
Dla tych, którzy ponownie używają klucza prywatnego do drugiego celu podpisania (np. installer+ application), Zapoznaj się z krokami instrukcji @ toland-hon poniżej, które używają OpenSSL w wierszu poleceń do obejścia błędnej Keychain Accessaplikacji. Poniższe kroki kierujące użytkowników do Certificatesekcji Keychain Accessnadal NIE działają w przypadku ponownego użycia klucza prywatnego do celów drugorzędnych. Ręczne CSR via opensslto realne obejście.
tresf

Odpowiedzi:


303

Rozwiązałem to. Przed zażądaniem certyfikatu upewnij się, że znajdujesz się w sekcji „Certyfikaty” i wybrałeś „Urząd certyfikacji relacji z programistami Apple Worldwide”.


7
Jesteś bohaterem. Wyrywania sobie włosów, kiedy wszystkie inne odpowiedzi nie rozwiązały problemu.
BFeher,

23
O mój Boże Apple WTF? Dziękuję John!
MattD

2
To jest szalone. :(: P what the falooda ??? Poważnie, musi być jakiś przyjazny dla użytkownika alert lub wiadomość.
Adil Soomro

2
Nie rozważyłem tej odpowiedzi, ponieważ myślałem, że to szalone. ale to faktycznie działa. jest kilka luźnych części ekosystemu jabłek, które są po prostu szalone :)
alex

2
To rozwiązało to dla mnie. Wybranie mojego starego klucza prywatnego nie zadziałało, podobnie jak brak wybranego klucza. Jakie to niejasne ...
zai chang

46

Dostęp do pęku kluczy nie pozwoli Ci zażądać certyfikatu od urzędu certyfikacji z „ tożsamością ” ... chyba że masz w pęku kluczy zarówno klucz prywatny, jak i klucz publiczny tożsamości . Wpadłem na to, gdy miałem tylko klucz prywatny, a nie odpowiadający mu klucz publiczny.

Możesz utworzyć klucz publiczny z klucza prywatnego i zaimportować go do swojego pęku kluczy, korzystając z procedury opisanej w sekcji Zgubiłem klucz publiczny. Czy mogę go odzyskać z klucza prywatnego?

Po zaimportowaniu klucza publicznego mogłem użyć polecenia Zażądaj certyfikatu od urzędu certyfikacji z „ tożsamością ” ... bez wyzwalania określonego elementu nie można znaleźć w błędzie pęku kluczy .


Masz rację, jak można stworzyć certyfikat bez klucza publicznego :)
onmyway133

29

Przed zażądaniem certyfikatu przejdź do sekcji „ Certyfikaty ” i wybierz „ Urząd certyfikacji relacji z programistami Apple Worldwide ” .

wprowadź opis obrazu tutaj


21

Pytasz (być może przypadkowo) dostęp do pęku kluczy o wygenerowanie żądania podpisania certyfikatu przy użyciu istniejącego klucza . Jeśli klucz zostanie wybrany po przejściu do menu Dostęp do pęku kluczy - Asystent certyfikatu , przedstawione opcje będą dotyczyły tego wybranego klucza.

Wybierz element niebędący kluczem w pęku kluczy (np. Zapisane hasło) i przejdź do Dostęp do pęku kluczy - Asystent certyfikatu aby normalnie wygenerować CSR.


Wygląda na to, że OS X domyślnie wybiera pierwszy element, który jest teraz wybrany. Jeśli po prostu wybierzesz inny pęku kluczy (np. System) podczas generowania tego, powinno to rozwiązać problem.
James Parker

O cholera, nigdy bym tego nie gościł. Porozmawiaj o złym projekcie interfejsu użytkownika ...
d512,

9

Nawet ja dostawałem ten problem. Rozwiązałem to, wybierając All ItemszamiastKeys w Categoriesokienku, a następnie próbując utworzyć Certyfikat.

Spróbuj tego, na pewno zadziała.


Lepiej zrestartować
knight 2016

7

Przydarzyło mi się to i zauważyłem, że opcja menu do tworzenia żądania certyfikatu zmieniła się z

Poproś o certyfikat z urzędu certyfikacji ...

do

Poproś o certyfikat z urzędu certyfikacji z „Moje imię” ...

Sprawdź tę opcję menu

Jestem w domenie w pracy, więc wylogowałem się, zalogowałem się i wylogowałem jako inny użytkownik, a następnie zalogowałem się ponownie. Następnie menu pojawiło się zgodnie z oczekiwaniami i ten błąd zniknął


4
Jest to funkcja Dostępu do pęku kluczy. Jeśli masz wybrany klucz po przejściu do tego menu, zaproponuje użycie klucza do utworzenia żądania podpisania certyfikatu. (W tym przypadku opcje są takie same, jak w przypadku kliknięcia klawisza prawym przyciskiem myszy). Wylogowanie spowoduje usunięcie zaznaczenia klucza.
Phil Calvin

Nie musisz się wylogowywać, a następnie logować. po prostu zamknij pęku kluczy i otwórz go ponownie, teraz nie wybieraj żadnego wpisu na liście i przejdź do menu, aby poprosić
M.Shuaib Imran

7

Moim celem było utworzenie CSR (żądanie podpisania certyfikatu) przy użyciu mojego istniejącego klucza prywatnego do przesłania do Apple w celu wygenerowania nowego certyfikatu dystrybucji iPhone'a. Upewniłem się, że Certyfikaty są wybraną kategorią po lewej stronie. Próbowałem kliknąć prawym przyciskiem myszy mój klucz prywatny i kliknąć Zażądaj certyfikatu z urzędu certyfikacji z zaimportowanym kluczem prywatnym i otrzymałem następujący błąd, gdy próbuję go zapisać.

Nie można znaleźć określonego elementu w pęku kluczy.

Otrzymałem również ten sam błąd, gdy przeszedłem przez menu plików: Dostęp do pęku kluczy > Asystent certyfikatu

Z innych źródeł internetowych dowiedziałem się, że dostęp do pęku kluczy NIE pozwala na utworzenie nowego CSR, jeśli zaimportowałeś klucz prywatny, tylko jeśli utworzyłeś klucz lokalnie z narzędzia.

Skończyło się na tym, że zamiast tego wyeksportowałem klucz prywatny i użyłem openssl do wygenerowania nowego CSR, który Apple zaakceptował i teraz odnosi się do nowego Importowanego klucza prywatnego.

Eksportowanie klucza prywatnego

  1. Kliknij prawym przyciskiem myszy klucz prywatny
  2. Eksport
  3. Upewnij się, że wybrany jest format pliku p12
  4. Zapisać
  5. Wprowadź hasło (opcjonalnie)
  6. Zezwól na dostęp do klucza eksportu
  7. Otwórz Terminal i przejdź do wyeksportowanego katalogu
  8. Wyodrębnij klucz z kontenera p12

Uważaj, ponieważ klucz prywatny .pem nie jest już chroniony hasłem)

$ openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes
Enter Import Password: ********************
MAC verified OK

Tworzenie nowego CSR z wyeksportowanym kluczem prywatnym

$ openssl req -out Certificates.csr -key Certificates.pem -new
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:.
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (e.g. server FQDN or YOUR name) []:John Doe Dev Key
Email Address []:thon@example.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Kilka uwag:

  • Wchodzić . kiedy chcesz, aby pole było puste, lub domyślnie będzie zawierać wszystko, co znajduje się w nawiasach [].
  • Nazwa pospolita (CN) powinna być nazwą klucza prywatnego (np. John Doe Dev Key)
  • Adres e-mail powinien być Twoim adresem e-mail (np. Thon@example.com)
  • Wszystko inne powinno być puste

Zweryfikuj swój CSR

$ openssl req -noout -text -in Certificates.csr
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: CN=John Doe Dev Key/emailAddress=thon@example.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (2048 bit)
                Modulus (2048 bit):
                    
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: sha1WithRSAEncryption
        

To, na czym powinieneś się troszczyć, znajduje się w temacie i sprawdź, czy jest poprawne.

Teraz wszystko, co musisz zrobić, to przesłać go do Apple, poczekać na wygenerowanie certyfikatu, a następnie zainstalować. Po zaimportowaniu nowo wygenerowanego certyfikatu zobaczysz, że będzie on odnosił się do starego certyfikatu, który wyeksportowałeś powyżej.


Ten sam problem. Chciał zachować ten sam klucz prywatny (tj. Pierwotnie używany, developerID_installer.cerale chcę go ponownie wykorzystać developerID_application.cer). Instrukcje Apple są złe, ponieważ zmuszają cię do korzystania z buggy Keychain Accesslub gorzej, XCode. Na powyższe rozwiązanie natknąłem się raczej nieumyślnie. Głosowanie za twoją, ponieważ właśnie to zrobiłem.
tresf

4

mam ten sam problem. mogę utworzyć CSR, a potem go nie tworzyć i otrzymuję ten sam błąd.

wtedy mogę wyszukać i znaleźć rozwiązanie, ale nie mogę go rozwiązać.

kiedyś mogę to rozwiązać.

mój dostęp do pęku kluczy przez pierwszą skrzynkę czasową CSR, więc mój dostęp do pęku kluczy jest zablokowany.

otwórz> dostęp do pęku kluczy> górna część dostępu do pęku kluczy ekran „Kliknij, aby odblokować pęku kluczy systemowych”

Kliknij to i odblokuj pęku kluczy systemowych, a następnie utwórz plik CSR, a następnie nie otrzymuję tego błędu.


2

Wybranie klucza prywatnego w pęku kluczy spowoduje problem. „nie można znaleźć określonego elementu w pęku kluczy” Po wybraniu klucza publicznego rozwiąż ten problem. „Twoje żądanie certyfikatu zostało utworzone na dysku”.


1

OK, nazwa, która się wyświetli, wyświetla element, który został podświetlony w głównym oknie pęku kluczy (jeśli wybierzesz tutaj inny element, zobaczysz, że zmieni się on wraz z nim). Jeśli przejdziesz do sekcji kategorii po lewej stronie i wybierzesz na przykład moje certyfikaty i wrócisz do pozycji menu asystenta certyfikatów, wygląda / zachowuje się tak, jakbyś był przyzwyczajony. Mam nadzieję że to pomoże!


1

Po unieważnieniu wszystkich posiadanych przeze mnie certyfikatów doszedłem do wniosku, że problem dotyczy mojego yubikey . To przeszkadzało w podpisywaniu aplikacji. Po usunięciu problem został rozwiązany.

Ten wątek na forum mi pomógł: https://forums.developer.apple.com/thread/106938


Dziękuję Ci! To też był mój problem. Może to nie stanowić problemu dla większości ludzi, ale każdy, kto ma Yubikey, powinien spróbować go wyciągnąć i odbudować.
Philihp Busby

0

Jeśli wybrałeś dowolny klucz prywatny w pęku kluczy podczas generowania nowego CSR, wyświetli się monit z odniesieniem do tego klucza. Po prostu upewnij się, że wybrałeś dowolny element klucza innego niż prywatny do generowania nowego CSR, który będzie przydatny do tworzenia nowego.

Na przykład zachowaj zaznaczenie w narzędziu pęku kluczy „Klucz publiczny” lub jakikolwiek istniejący certyfikat, który nie ma dopasowanego klucza prywatnego. Teraz wykonaj procedurę „Żądaj certyfikatu z urzędu certyfikacji”.



-14

Rozwiązałem to! Musiał zmienić „Certyfikat użytkownika” na „Podpisywanie kodu”.


Co masz na myśli, mówiąc o zmianie „Certyfikat użytkownika” na „Podpisywanie kodu”?
user500

Tak, poproszę, ja też mam ten sam problem, co masz na myśli mówiąc „podpisywanie kodu? Gdzie to jest?
Habitante,
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.