尝试获取证书时出错:在钥匙串中找不到指定的项目

Ser*_*gey 93 codesign ios

我在处理我的应用程序时遇到了问题,因此我从钥匙串中删除了所有密钥.然后我去了证书助理=>从证书颁发机构申请证书(为新证书创建CSR).

所以输入我的电子邮件地址,这是我得到的:

在钥匙串中找不到指定的项目.

我究竟做错了什么?

PS当我尝试创建证书颁发机构时,我得到同样的错误.

Fra*_*sco 257

我解决了 确保您在"证书"部分,并在申请证书之前选择"Apple全球开发者关系证书颁发机构".

  • 哦,我的上帝Apple WTF?谢谢约翰! (19认同)
  • 你是英雄.当所有其他答案都没有解决问题时,我正在拔出我的头发. (6认同)
  • 疯了吧。:(:P什么是falooda ???严重地,需要有一些用户友好的警报或消息。 (2认同)
  • 我没有考虑这个答案,因为我认为这很疯狂。但实际上可以。苹果生态系统中有些零散的地方简直是疯了:) (2认同)
  • 这为我解决了。选择我的旧私钥无效,也没有选择密钥。真是晦涩 (2认同)

Gen*_*man 44

钥匙串访问不会让你请求一个证书颁发机构证书与" 身份 " ......除非你有两个私钥公钥身份在您的钥匙串.当我只拥有私钥而不是相应的公钥时,我遇到了这个问题.

您可以使用私钥创建公钥,并使用我丢失公钥中描述的过程将其导入到您的钥匙串中.我可以从私钥中恢复吗?

一旦我导入了公钥,我就可以使用" 证书颁发机构的证书申请"和" 身份 "...命令而不触发在钥匙串错误中找不到指定的项目.


Phi*_*vin 19

您(可能是偶然)要求Keychain Access 使用现有密钥生成证书签名请求.如果在进入Keychain Access - Certificate Assistant菜单时选择了某个键,则显示的选项将针对该选定键.

在钥匙串中选择一个非关键项目(如保存的密码),然后再次转到Keychain Access - Certificate Assistant以正常生成CSR.


ate*_*kov 11

截至2019年2月:

申请证书之前,请转到“ 证书 ”部分并选择“ Apple全球开发者关系证书颁发机构 ” 。

在此处输入图片说明


小智 9

即使我遇到了这个问题.我通过选择All Items而不是KeysCategories窗格中然后尝试创建证书来解决这个问题.

试试这个,它肯定会奏效.


Dam*_*amo 7

这发生在我身上我发现创建证书请求的菜单选项已经改变了

从证书颁发机构申请证书......

通过"我的名字"向证书颁发机构申请证书......

选中此菜单选项

我在工作中的域名,所以我注销,登录和注销另一个用户,然后再次登录.之后,菜单按预期显示,此错误消失了

  • 这是Keychain Access的一项功能.如果您在转到此菜单时选择了密钥,则会提供使用密钥来创建证书签名请求.(在这种情况下,选项与右键单击键时相同.)注销将取消选择键. (4认同)

Tol*_*Hon 7

我的目标是使用我现有的私钥创建CSR(证书签名请求),以提交给Apple以生成新的iPhone分发证书.我确保证书是左侧选定的类别.我试图右键单击我的私钥并单击从具有导入私钥的证书颁发机构申请证书,并在我尝试保存时出现以下错误.

在钥匙串中找不到指定的项目.

当我浏览文件菜单时,我也遇到了同样的错误:Keychain Access > Certificate Assistant

我从其他互联网资源中收集到的是,只有在您从工具本地创建密钥时,如果您导入了私钥,Keychain Access不允许您创建新的CSR.

我最终做的是导出私钥并使用openssl生成Apple接受的新CSR,现在引用新的Imported Private Key.

导出私钥

  1. 右键单击私钥
  2. 出口
  3. 确保选择了p12文件格式
  4. 保存
  5. 输入密码(可选)
  6. 允许访问导出密钥
  7. 打开终端并转到导出目录
  8. 从p12容器中提取密钥

请小心.pem私钥不再受密码保护)

$ openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes
Enter Import Password: ********************
MAC verified OK
Run Code Online (Sandbox Code Playgroud)

使用导出的私钥创建新CSR

$ 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 []:
Run Code Online (Sandbox Code Playgroud)

有几点需要注意:

  • 输入 当你想要字段为空时,或者默认将包括括号[]中的任何内容.
  • 通用名称(CN)应该是您的私钥名称(例如,John Doe Dev Key)
  • 电子邮件地址应该是您的电子邮件地址(例如thon@example.com)
  • 其他一切都应该是空白的

验证您的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
        …
Run Code Online (Sandbox Code Playgroud)

您应该关注的是主题行并验证是否正确.

现在您需要做的就是将其提交给Apple,等待生成证书,然后安装它.导入新生成的证书后,您将看到它将引用您上面导出的旧证书.


小智 6

我有同样的问题。我可以创建 CSR,然后不创建它,并且出现同样的错误。

然后我可以搜索并找到可能的解决方案但无法解决。

有时间我可以解决它。

我的钥匙串访问是通过第一次 crate CSR 进行的。所以我的钥匙串访问是锁定的。

打开 > 钥匙串访问 > 钥匙串访问顶部显示“单击以解锁系统钥匙串”

单击该按钮并解锁系统钥匙串,然后创建 CSR 文件,然后未收到此错误。


Ser*_*gey -20

解决了!必须将“用户证书”更改为“代码签名”。