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
- Kliknij prawym przyciskiem myszy klucz prywatny
- Eksport
- Upewnij się, że wybrany jest format pliku p12
- Zapisać
- Wprowadź hasło (opcjonalnie)
- Zezwól na dostęp do klucza eksportu
- Otwórz Terminal i przejdź do wyeksportowanego katalogu
- 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.