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

我在编码我的应用程序时遇到问题,所以我删除了钥匙串中的所有密钥。 然后,我去了证书助理=>请求来自证书颁发机构的证书 (为新证书创buildCSR)。

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

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

我究竟做错了什么?

PS当我试图创build一个证书颁发机构 ,我得到了同样的错误。

我解决了它。 确保您处于“证书”部分,并在申请证书前select“Apple Worldwide Developer Relations Certification Authority”。

钥匙串访问将不会让您从证书颁发机构申请证书使用“ 身份证书”…除非您在钥匙串中拥有私钥公钥。 当我只有私钥而不是相应的公钥时,我遇到了这个问题。

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

一旦我导入了公钥,我就可以使用证书颁发机构的“请求证书”使用“ identity ”…命令,而不会触发在钥匙串错误中找不到指定的项目

您(可能是偶然)要求钥匙串访问使用现有密钥生成证书签名请求。 如果您进入“ 钥匙串访问证书助理”菜单时select了某个密钥,则提供的选项将用于该选定的密钥。

select钥匙链中的非钥匙项目(如保存的密码),再次进入钥匙串访问证书助手 ,正常生成CSR。

即使我正在得到这个问题。 我通过selectAll Items而不是在Categories窗格中的Keys ,然后尝试创build证书来解决这个问题。

试试这个,它一定会奏效。

这发生在我身上我注意到,创build证书请求的菜单选项已经改变

从authentication机构申请证书…

使用“我的名字”从证书颁发机构申请证书…

检查这个菜单选项

我在工作的域名,所以我注销,作为另一个用户login和注销,然后再次login。 之后,菜单出现如预期,这个错误消失了

好的,显示的名称显示您在钥匙串主窗口中突出显示的项目(如果您在此处select不同的项目,也会看到菜单项目随之更改)。 如果你走到左侧的类别部分,并select我的证书,并返回到证书辅助菜单项,它看起来/行为就像你习惯了。 希望这可以帮助!

我有同样的问题。 我可以创buildCSR然后不创build它,同样的错误越来越。

那么我可以search,发现可能的解决scheme,但不解决。

有一段时间我可以解决它。

我的钥匙串访问通过第一时间箱CSR.so我的钥匙串访问是锁。

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

点击并解锁系统钥匙串,然后创buildCSR文件,然后不要获取这个错误。

如果您在生成新的CSR时在钥匙串中select了任何私钥,则会提示您引用该密钥。 只要确保您已经select了任何非私人密钥项目来生成新的CSR,这对于创build新的CSR将是有用的。

对于例如在钥匙串工具“公钥”中保持select或者没有私钥与之alignment的任何现有证书。 现在按照“从证书颁发机构申请证书”stream程。

我的目标是创build一个CSR(证书签名请求)使用我现有的私钥提交给苹果公司生成一个新的iPhone发行证书。 我确保证书是左侧选定的类别 。 我尝试右键单击我的私钥,然后单击从导入的私钥的证书颁发机构申请证书,当我尝试保存它时会得到以下错误。

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

当我通过文件菜单时,我也遇到了同样的错误: 钥匙串访问 > 证书助理

我从其他互联网来源收集的是,钥匙串访问不允许你创build一个新的CSR,如果你导入私钥,只有当你从工具本地创build密钥。

我最终做的是导出私钥,并使用openssl生成新的CSR,苹果公司接受,现在引用新的导入私钥。

导出私钥

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

请注意,.pem私钥不再受密码保护)

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

使用导出的私钥创build新的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 (eg 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 []: 

有几件事要注意:

  • 回车 当你想让这个字段为空时,或者默认情况下会包含括号中的任何内容[]。
  • Common Name(CN)应该是您的私钥名称(例如,John Doe Dev Key)
  • 电子邮件地址应该是您的电子邮件地址(例如thon@example.com)
  • 其他一切应该是空白的

validation您的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 … 

你应该关心的是在主题行,并validation是正确的。

现在,您只需将其提交给Apple,等待证书生成,然后安装即可。 导入新生成的证书后,您将看到它将引用上面导出的旧证书。

在钥匙串中select私钥会出现问题。 “指定的项目不能在钥匙串中find”当你select公钥解决它。 “您的证书申请已经在磁盘上创build。”

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