Amacım, mevcut özel anahtarımı kullanarak yeni bir iPhone Dağıtım sertifikası oluşturmak için Apple'a göndermek üzere bir CSR (sertifika imzalama isteği) oluşturmaktı. Sertifikaların solda seçilen Kategori olduğundan emin oldum . Özel anahtarıma sağ tıklayıp İçe Aktarılan Özel Anahtarla Sertifika Yetkilisinden Sertifika İste seçeneğine tıklamaya çalıştım ve kaydetmeye çalıştığımda aşağıdaki hatayı alıyorum.
Belirtilen öğe anahtar zincirinde bulunamadı.
Dosya menüsüne girdiğimde de aynı hatayı aldım: Anahtar Zinciri Erişimi > Sertifika Yardımcısı
Diğer internet kaynaklarından öğrendiğim şey, Anahtar Zinciri Erişiminin, özel anahtarı içe aktardıysanız, yalnızca anahtarı araçtan yerel olarak oluşturduysanız yeni bir CSR oluşturmanıza izin VERMEZ.
Bunun yerine yaptığım şey, özel anahtarı dışa aktarmak ve Apple'ın kabul ettiği ve şimdi yeni İçe Aktarılan Özel Anahtarı referans alan yeni CSR'yi oluşturmak için openssl'yi kullanmaktı.
Özel anahtarı dışa aktarma
- Özel anahtara sağ tıklayın
- İhracat
- P12 dosya formatının seçildiğinden emin olun
- Kayıt etmek
- Bir şifre girin (isteğe bağlı)
- Dışa aktarma anahtarına erişime izin ver
- Terminal'i açın ve dışa aktarılan dizine gidin
- Anahtarı p12 kabından çıkarın
.Pem özel anahtarı artık parola korumalı olmadığından dikkatli olun)
$ openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes
Enter Import Password: ********************
MAC verified OK
Dışa aktarılan özel anahtarla yeni CSR oluşturma
$ 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 []:
Dikkat edilmesi gereken birkaç nokta:
- Giriş . alanın boş olmasını istediğinizde veya varsayılan, köşeli parantez [] içindeki her şeyi içerecektir.
- Ortak Ad (CN), özel anahtar adınız olmalıdır (örneğin, John Doe Dev Key)
- E-posta Adresi, e-posta adresiniz olmalıdır (ör. Thon@example.com)
- Diğer her şey boş olmalı
CSR'nizi doğrulayın
$ 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
…
Dikkat etmeniz gereken konu konu üzerinde satırındadır ve bunun doğru olduğunu onaylayın.
Şimdi yapmanız gereken tek şey onu Apple'a göndermek, sertifikanın oluşturulmasını beklemek ve ardından yüklemek. Yeni oluşturulan sertifikanızı içe aktardıktan sonra, yukarıda dışa aktardığınız eski sertifikaya referans vereceğini göreceksiniz.