尝试获取证书时出错:在钥匙串中找不到指定的项目
我在编码我的应用程序时遇到问题,所以我删除了钥匙串中的所有密钥。 然后,我去了证书助理=>请求来自证书颁发机构的证书 (为新证书创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,苹果公司接受,现在引用新的导入私钥。
导出私钥
- 右键点击私钥
- 出口
- 确保select了p12文件格式
- 保存
- input密码(可选)
- 允许访问导出密钥
- 打开terminal并转到导出的目录
- 从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。”
解决了! 不得不将“用户证书”更改为“代码签名”。