Bir sertifika almaya çalışırken hata: Belirtilen öğe anahtar zincirinde bulunamadı


111

Uygulamalarımı kod imzalarken bir sorun yaşıyordum, bu yüzden anahtar zincirindeki tüm anahtarları sildim. Sonra Sertifika Asistanı'na gittim => Bir Sertifika Yetkilisinden bir sertifika talep et (yeni bir sertifika için CSR oluşturmak için).

E-posta adresimi girin ve işte karşıma çıkan:

Belirtilen öğe anahtar zincirinde bulunamadı.

Neyi yanlış yapıyorum?

Not: Bir Sertifika Yetkilisi oluşturmaya çalışırken aynı hatayı alıyorum.


1
Bende aynı hatayı alıyorum. Lütfen cevabınızı veya nasıl yapılacağını bilen birini
açıklar mısınız


1
İkinci bir imzalama amacıyla (örneğin installer+ application) özel bir anahtarı yeniden kullananlar için , lütfen buggy Keychain Accessuygulamasını geçici olarak çözmek için komut satırında OpenSSL kullanan aşağıdaki @ toland-hon'un kılavuz adımlarına bakın . Bir özel anahtarı ikincil bir amaç için yeniden kullanırken kullanıcıları Certificatebölümüne yönlendiren aşağıdaki adımlar Keychain Accesshala çalışmaz. Manuel CSR openssl, uygulanabilir bir çözümdür.
tresf

Yanıtlar:


303

Ben çözdüm. Bir sertifika istemeden önce "Sertifikalar" bölümünde olduğunuzdan ve "Apple Dünya Çapında Geliştirici İlişkileri Sertifika Yetkilisi" ni seçtiğinizden emin olun.


7
Sen bir kahramansın. Diğer tüm cevaplar sorunu çözmediğinde saçımı çekiyordum.
BFeher

23
Aman tanrım Apple WTF? Teşekkürler John!
MattD

2
Bu delilik. :(: P what the falooda ??? Cidden, kullanıcı dostu bir uyarı veya mesaj olması gerekiyor.
Adil Soomro

2
Bu cevabı dikkate almadım çünkü bunun çılgınca olduğunu düşündüm. ama aslında işe yarıyor. elma ekosisteminin delice olan bazı gevşek kısımları var :)
alex

2
Bu benim için çözdü. Eski özel anahtarımın seçilmesi işe yaramadı, ne de bir anahtar seçilmedi. Ne kadar karanlık ...
zai chang

46

Anahtarlık Erişim izin vermez "ile bir Sertifika Yetkilisi sertifika isteği kimlik " ... Eğer özel anahtarı ikisine de sahip olmadıkça ve genel anahtarı kimlik Anahtarlık. Buna, yalnızca özel anahtara sahip olduğumda ve karşılık gelen genel anahtara sahip olmadığımda karşılaştım.

Genel anahtarı özel anahtardan oluşturabilir ve Genel anahtarımı kaybettim bölümünde açıklanan prosedürü kullanarak anahtar zincirinize aktarabilirsiniz . Özel bir anahtardan kurtarabilir miyim?

Genel anahtarı içe aktardıktan sonra, " Kimlik " ile Sertifika Yetkilisinden Sertifika İste ... komutunu tetiklemeden kullanabildim Belirtilen öğe anahtarlık hatasında bulunamadı .


Haklısın, sertifika genel anahtar olmadan nasıl oluşturulabilir :)
onmyway133

29

Bir sertifika istemeden önce " Sertifikalar " bölümüne gidin ve " Apple Dünya Çapında Geliştirici İlişkileri Sertifika Yetkilisi " ni seçin .

görüntü açıklamasını buraya girin


21

Anahtar Zinciri Erişimi'nden mevcut bir anahtarı kullanarak bir Sertifika İmzalama İsteği oluşturmasını (belki yanlışlıkla) istiyorsunuz . Anahtar Zinciri Erişimi - Sertifika Yardımcısı menüsüne girdiğinizde bir anahtar seçilirse , sunulan seçenekler o seçilen anahtar için olacaktır.

Anahtar zincirinizde anahtar olmayan bir öğe seçin (kaydedilmiş bir parola gibi) ve CSR'yi normal şekilde oluşturmak için Anahtar Zinciri Erişimi - Sertifika Yardımcısı'na tekrar gidin .


Görünüşe göre OS X şimdi varsayılan olarak seçilen ilk öğeye ayarlanıyor. Bunu oluşturduğunuzda farklı bir anahtar zinciri (yani Sistem) seçerseniz, sorunu çözmesi gerekir.
James Parker

Vay canına, buna asla konuk olmazdım. Kötü kullanıcı arayüzü tasarımı hakkında konuşun ...
d512

9

Ben bile bu sorunu alıyordum. Bunu , bölmedeki All Itemsyerine seçerek ve ardından Sertifikayı oluşturmaya çalışarak çözdüm.KeysCategories

Bunu dene, kesinlikle işe yarayacak.


Yeniden başlatmak daha iyi
knight2016

7

Bu benim başıma geliyordu, sertifika isteğini oluşturmak için menü seçeneğinin öğesinden değiştiğini fark ettim.

Bir Sertifika Yetkilisinden Sertifika İsteyin ...

-e

Bir Sertifika Yetkilisinden "Adım" ile bir Sertifika isteyin ...

Bu menü seçeneğini kontrol edin

İş yerindeyim, bu yüzden çıkış yaptım, başka bir kullanıcı olarak giriş ve çıkış yaptım, sonra tekrar giriş yaptım. Bundan sonra menü beklendiği gibi belirdi ve bu hata ortadan kalktı


4
Bu, Anahtar Zinciri Erişiminin bir özelliğidir. Bu menüye gittiğinizde bir anahtar seçtiyseniz, Sertifika İmzalama İsteği oluşturmak için anahtarı kullanmayı teklif edecektir. (Bu durumda, seçenekler bir tuşun sağ tıklanmasıyla aynıdır.) Oturumu kapatmak anahtarın seçimini kaldırır.
Phil Calvin

Oturumu kapatıp sonra oturum açmanız gerekmez. sadece anahtar zincirinden çıkın ve tekrar açın, listedeki herhangi bir girişi seçmeyin ve talep etmek için menüye gidin
M. Shuaib Imran

7

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

  1. Özel anahtara sağ tıklayın
  2. İhracat
  3. P12 dosya formatının seçildiğinden emin olun
  4. Kayıt etmek
  5. Bir şifre girin (isteğe bağlı)
  6. Dışa aktarma anahtarına erişime izin ver
  7. Terminal'i açın ve dışa aktarılan dizine gidin
  8. 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.


Aynı sorun. Aynı özel anahtarı saklamak developerID_installer.ceristedim (yani başlangıçta bunun için kullanılıyor, ancak yeniden kullanmak istiyor developerID_application.cer). Apple'ın talimatları kötü çünkü sizi buggy Keychain Accessveya daha kötüsü XCode'u kullanmaya zorluyorlar . Yanlışlıkla bu çözüme rastladım. Seninkine oy veriyorum çünkü tam olarak bunu yapmaya başladım.
tresf

4

aynı problemim var CSR oluşturabilirim sonra oluşturamaz ve aynı hata alınıyor.

O zaman arayabilir ve çözebilirim ama çözemezim.

bir süre çözebilirim.

frist time crate CSR aracılığıyla anahtarlık erişimim. bu yüzden anahtarlık erişimim kilitli.

open> keychain erişimi> keychain erişim ekranının üst kısmı "Sistem anahtar zincirinin kilidini açmak için tıklayın"

Bunu tıklayın ve sistem anahtar zincirinin kilidini açın, ardından CSR dosyası oluşturun ve ardından Bu hatayı almıyor.


2

Anahtar zincirinde özel anahtarın seçilmesi sorunu ortaya çıkaracaktır. "belirtilen öğe anahtar zincirinde bulunamadı" Açık anahtarı seçerken onu çözün. "Sertifika talebiniz diskte oluşturuldu."


1

Tamam, gösteren ad, Anahtar Zinciri ana penceresinde vurguladığınız öğeyi gösterir (burada farklı bir öğe seçerseniz, menü öğesinin onunla değiştiğini de görürsünüz). Soldaki kategori bölümüne gidip örneğin sertifikalarımı seçip sertifika yardımcısı menü öğesine geri dönerseniz, alışmışsınız gibi görünür / davranır. Bu yardımcı olur umarım!


1

Sahip olduğum her sertifikayı iptal ettikten sonra, sorunun yubikey'imde olduğunu anladım . Uygulamayı imzalama yoluna giriyordu. Çıkardıktan sonra sorun çözüldü.

Bu forum başlığı bana yardımcı oldu: https://forums.developer.apple.com/thread/106938


Teşekkür ederim! Bu benim de sorunumdu. Bu çoğu insan için sorun olmayabilir, ancak Yubikey'i olan herkes onu çıkarmayı ve yeniden inşa etmeyi denemelidir.
Philihp Busby

0

Yeni CSR oluştururken anahtar zincirinde herhangi bir özel anahtar seçtiyseniz, o anahtara referansla sizi yönlendirecektir. Yeni CSR oluşturmak için herhangi bir özel olmayan anahtar öğesi seçtiğinizden emin olun, bu yeni bir CSR oluşturmak için yararlı olacaktır.

Örneğin, anahtar zinciri aracında "Genel Anahtar" veya özel anahtara sahip olmayan mevcut herhangi bir sertifikada seçili tutun. Şimdi "Sertifika Yetkilisinden Sertifika İste" akışını izleyin.



-14

Çözüldü! "Kullanıcı sertifikası" nın "Kod imzalama" olarak değiştirilmesi gerekiyordu.


"Kullanıcı sertifikası" nı "Kod imzalama" olarak değiştirmekle neyi kastediyorsunuz?
user500

Evet lütfen, ben de aynı problemle karşılaşıyorum, "kod imzalama? Bu nerede?
Habitante
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.