137

我在对我的应用程序进行代码设计时遇到问题,所以我从钥匙串中删除了所有钥匙。然后我去了证书助理 => 向证书颁发机构请求证书(为新证书创建 CSR)。

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

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

我究竟做错了什么?

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

4

17 回答 17

373

我解决了。确保您位于“证书”部分,并在申请证书之前选择“Apple Worldwide Developer Relations 证书颁发机构”。

于 2013-10-03T13:15:48.747 回答
49

在申请证书之前,转到“证书”部分并选择“ Apple Worldwide Developer Relations Certification Authority ” 。

在此处输入图像描述

于 2019-02-18T09:57:28.700 回答
48

钥匙串访问不会让您向具有“身份”的证书颁发机构请求证书......除非您在钥匙串中同时拥有用于身份的私钥公钥。当我只有私钥而没有相应的公钥时,我遇到了这个问题。

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

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

于 2013-12-01T05:08:54.330 回答
21

您(可能不小心)要求 Keychain Access使用现有密钥生成 Certificate Signing Request 。如果在进入Keychain Access - Certificate Assistant菜单时选择了一个密钥,则显示的选项将针对该选定的密钥。

在您的钥匙串中选择一个非关键项(如保存的密码),然后再次进入钥匙串访问-证书助手以正常生成 CSR。

于 2014-02-12T23:50:41.023 回答
10

甚至我也遇到了这个问题。我通过选择All Items而不是窗格Keys中的解决了这个问题Categories,然后尝试创建证书。

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

于 2013-10-15T11:27:43.033 回答
7

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

向证书颁发机构请求证书...

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

检查此菜单选项

我在工作的域上,所以我注销,以另一个用户身份登录和注销,然后再次登录。之后菜单按预期出现,此错误消失

于 2013-09-03T10:19:59.160 回答
7

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

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

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

我从其他互联网来源收集到的是,如果您导入了私钥,钥匙串访问不允许您创建新的 CSR,只有当您从该工具本地创建密钥时。

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

导出私钥

  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

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

有几点需要注意:

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

验证您的企业社会责任

$ 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,等待生成证书,然后安装它。导入新生成的证书后,您会看到它将引用您在上面导出的旧证书。

于 2017-07-12T21:28:23.073 回答
5

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

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

有时间我可以解决它。

我通过第一个时间箱 CSR 访问钥匙串。所以我的钥匙串访问是锁定的。

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

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

于 2017-04-22T04:56:01.033 回答
3

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

这个论坛帖子帮助了我:https ://forums.developer.apple.com/thread/106938

于 2019-01-28T17:11:15.780 回答
2

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

于 2017-09-25T08:45:47.677 回答
1

好的,显示的名称显示您在钥匙串主窗口中突出显示的项目(如果您在此处选择不同的项目,您还会看到菜单项随之更改)。例如,如果您转到左侧的类别部分并选择我的证书,然后返回证书助手菜单项,它看起来/就像您习惯的那样。希望这可以帮助!

于 2013-11-06T09:35:48.007 回答
1

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

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

于 2019-03-31T22:34:43.653 回答
0

如果您在生成新的 CSR 时选择了钥匙串中的任何私钥,那么它将提示您参考该密钥。只需确保您选择了任何非私钥项来生成新的 CSR,这对于创建新的 CSR 很有用。

例如,在钥匙串工具“Public Key”中保持选中状态,或者任何没有与它对齐的私钥的现有证书。现在按照“从证书颁发机构请求证书”流程。

于 2015-03-09T07:31:33.597 回答
0

对我来说,问题是一个被搞砸的证书。

我没有必要删除我的所有证书。

识别不良证书:

  1. 从你钥匙串选择登录从类别选择证书
  2. 查找任何带有蓝色 + 的 Apple 证书
  3. 双击证书。
  4. 展开信任 如果它搞砸了,那么“使用此证书时”设置为“始终信任”以及蓝色 +

修复错误的证书:

  1. 只需将其设置为“使用系统默认值”并关闭它。
  2. 你会得到一个弹出窗口。输入您的密码以更新设置。
  3. 关闭钥匙串。
  4. 回到你的项目,清理并运行。
  5. 问题应该已经消失了。如果这不起作用,则返回 Keychain 并仔细检查是否有任何其他 Apple 证书设置为始终信任并重复该过程。
于 2020-10-15T17:40:18.227 回答
0

对我来说,我试图退出生成的 IPA 文件,expo build所以我跑了

codesign -f -s "iPhone Distribution: Company Certificate" --resource-rules Payload/MyApp.app/ResourceRules.plist  Payload/MyApp.app

然后就显示了

error: The specified item could not be found in the keychain.

所以我去了我添加(上传)证书的钥匙串,然后用钥匙串访问中的证书名称替换了“iPhone Distribution:Company Certificate”。检查附加的图像 在此处输入图像描述

于 2022-02-20T15:32:08.083 回答
-2

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

于 2021-02-01T08:14:03.337 回答
-18

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

于 2013-05-31T09:01:58.413 回答