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

时间:2013-05-30 20:18:32

标签: ios codesign

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

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

  

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

我做错了什么?

P.S。当我尝试创建证书颁发机构时,我收到同样的错误。

16 个答案:

答案 0 :(得分:238)

我解决了。确保您在“证书”部分,并在申请证书之前选择“Apple Worldwide Developer Relations Certification Authority”。

答案 1 :(得分:44)

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

您可以使用私钥创建公钥,并使用I lost my public key. Can I recover it from a private key?

中描述的过程将其导入到您的钥匙串中

导入公钥后,我可以使用使用“身份”... 命令从证书颁发机构申请证书,而不会触发无法在钥匙串错误中找到指定的项目。

答案 2 :(得分:18)

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

选择钥匙串中的非关键项目(如已保存的密码),然后再次转到钥匙串访问 - 证书助理以正常生成CSR。

答案 3 :(得分:9)

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

试试这个,一定会有效。

答案 4 :(得分:7)

这发生在我身上,我注意到用于创建证书请求的菜单选项已从

更改

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

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

Check this menu option

我正在使用域名,因此我以其他用户身份登出,登录和注销,然后再次登录。之后,菜单按预期显示,此错误消失

答案 5 :(得分:6)

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

  

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

当我浏览文件菜单时,我也遇到了同样的错误: Keychain Access > 证书助理

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

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

导出私钥

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

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

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

    有几点需要注意:

    • 输入。如果您希望该字段为空白,或者默认值将包含括号[]中的任何内容。
    • 公用名(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
            …
    

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

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

答案 6 :(得分:6)

截至2019年2月:

转到“ 证书”部分,然后选择“ Apple Worldwide开发人员关系证书颁发机构,然后请求证书。

enter image description here

答案 7 :(得分:3)

我有同样的问题。我可以创建CSR然后不创建它,并且正在获得相同的错误。

然后我可以搜索并找到解决方案,但不能解决。

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

我的钥匙串访问通过frist time crate CSR.so我的钥匙串访问是锁定。

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

单击该按钮并解锁系统钥匙串,然后创建CSR文件,然后输入Not Getting this error。

答案 8 :(得分:1)

好的,显示的名称显示您在Keychain主窗口中突出显示的项目(如果您在此处选择其他项目,您还会看到菜单项随之更改)。 如果您转到左侧的类别部分并选择我的证书,并返回证书辅助菜单项,它看起来/行为就像您习惯的那样。希望这有帮助!

答案 9 :(得分:1)

选择钥匙串中的私钥会出现问题。 “在钥匙串中找不到指定的项目”  当你选择公钥解决它。 “您的证书请求已在磁盘上创建。”

答案 10 :(得分:1)

吊销我拥有的所有证书后,我发现问题出在我的 yubikey 上。它阻碍了对应用程序的签名。删除后,问题解决了。

这个论坛主题帮助我:https://forums.developer.apple.com/thread/106938

答案 11 :(得分:0)

如果您在生成新CSR时选择了钥匙串中的任何私钥,则会提示您引用该密钥。只需确保您已选择任何非私钥项目来生成新的CSR,这对于创建新的CSR非常有用。

例如,在钥匙串工具“公钥”中选择保留,或者没有与其对齐的私钥的任何现有证书。现在按照“证书颁发机构的证书申请”流程进行操作。

答案 12 :(得分:0)

下面的链接为我解决了此问题。  https://forums.developer.apple.com/thread/72863

就我而言,是yubikey一直连接到我的Mac。删除后,问题会自动解决。

答案 13 :(得分:0)

对我来说,问题是一个证书被弄乱了。

我不需要删除所有证书。

识别不良证书:

  1. 从您的钥匙串中选择“从类别登录”,然后选择“证书”
  2. 找到所有带有蓝色+的Apple证书
  3. 双击证书。
  4. 扩展信任关系如果混乱,则将“使用此证书时”与蓝色+一起设置为“始终信任”。

修复错误的证书:

  1. 只需将其设置为“使用系统默认值”,然后将其关闭。
  2. 您将弹出一个窗口。输入密码以更新设置。
  3. 关闭KeyChain。
  4. 回到您的项目,清理并运行。
  5. 问题应该消失了。如果那没有用,请返回钥匙串,再次仔细检查,看看是否还有其他Apple证书设置为Always Trust,然后重复该过程。

答案 14 :(得分:-1)

我在我的 Mac 上遇到了同样的问题,我只是转到系统首选项,MySQL,选择 MySQL 版本,初始化数据库,输入密码,好的。然后它的工作

答案 15 :(得分:-14)

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