我在对我的应用程序进行代码设计时遇到问题,所以我从钥匙串中删除了所有钥匙。然后我去了证书助理 => 向证书颁发机构请求证书(为新证书创建 CSR)。
所以输入我的电子邮件地址,这就是我得到的:
在钥匙串中找不到指定的项目。
我究竟做错了什么?
PS 当我尝试创建证书颁发机构时,我得到了同样的错误。
我解决了。确保您位于“证书”部分,并在申请证书之前选择“Apple Worldwide Developer Relations 证书颁发机构”。
钥匙串访问不会让您向具有“身份”的证书颁发机构请求证书......除非您在钥匙串中同时拥有用于身份的私钥和公钥。当我只有私钥而没有相应的公钥时,我遇到了这个问题。
您可以使用我丢失了我的公钥中描述的过程从私钥创建公钥并将其导入您的钥匙串。我可以从私钥中恢复它吗?
导入公钥后,我可以使用“身份”...命令从证书颁发机构请求证书,而不会触发在钥匙串错误中找不到指定的项目。
您(可能不小心)要求 Keychain Access使用现有密钥生成 Certificate Signing Request 。如果在进入Keychain Access - Certificate Assistant菜单时选择了一个密钥,则显示的选项将针对该选定的密钥。
在您的钥匙串中选择一个非关键项(如保存的密码),然后再次进入钥匙串访问-证书助手以正常生成 CSR。
甚至我也遇到了这个问题。我通过选择All Items
而不是窗格Keys
中的解决了这个问题Categories
,然后尝试创建证书。
试试这个,它肯定会奏效。
这发生在我身上我注意到创建证书请求的菜单选项已从
向证书颁发机构请求证书...
到
使用“我的名字”向证书颁发机构请求证书...
我在工作的域上,所以我注销,以另一个用户身份登录和注销,然后再次登录。之后菜单按预期出现,此错误消失
我的目标是使用我现有的私钥创建一个 CSR(证书签名请求)以提交给 Apple 以生成新的 iPhone 分发证书。我确保证书是左侧选定的类别。我尝试右键单击我的私钥并单击使用导入的私钥从证书颁发机构请求证书,当我尝试保存它时会收到以下错误。
在钥匙串中找不到指定的项目。
当我浏览文件菜单时,我也遇到了同样的错误:钥匙串访问>证书助手
我从其他互联网来源收集到的是,如果您导入了私钥,钥匙串访问不允许您创建新的 CSR,只有当您从该工具本地创建密钥时。
我最终做的是导出私钥并使用 openssl 生成 Apple 接受的新 CSR,现在引用新的导入私钥。
请小心,因为 .pem 私钥不再受密码保护)
$ openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes
Enter Import Password: ********************
MAC verified OK
$ 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 []:
有几点需要注意:
$ 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,等待生成证书,然后安装它。导入新生成的证书后,您会看到它将引用您在上面导出的旧证书。
我有同样的问题。我可以创建 CSR 然后不创建它,并且出现相同的错误。
然后我可以搜索并找到可能的解决方案但无法解决。
有时间我可以解决它。
我通过第一个时间箱 CSR 访问钥匙串。所以我的钥匙串访问是锁定的。
打开 > 钥匙串访问 > 钥匙串访问顶部显示“点击解锁系统钥匙串”
单击它并解锁系统钥匙串,然后创建 CSR 文件,然后未收到此错误。
在吊销我拥有的所有证书后,我发现问题出在我的yubikey 上。它妨碍了签署应用程序。我删除它后,问题解决了。
这个论坛帖子帮助了我:https ://forums.developer.apple.com/thread/106938
在钥匙串中选择私钥会出现问题。“在钥匙串中找不到指定的项目”当您选择公钥时解决它。“您的证书请求已在磁盘上创建。”
好的,显示的名称显示您在钥匙串主窗口中突出显示的项目(如果您在此处选择不同的项目,您还会看到菜单项随之更改)。例如,如果您转到左侧的类别部分并选择我的证书,然后返回证书助手菜单项,它看起来/就像您习惯的那样。希望这可以帮助!
下面的链接为我解决了这个问题。 https://forums.developer.apple.com/thread/72863
就我而言,它是一直连接到我的 Mac 的 yubikey。删除后,问题自动解决。
如果您在生成新的 CSR 时选择了钥匙串中的任何私钥,那么它将提示您参考该密钥。只需确保您选择了任何非私钥项来生成新的 CSR,这对于创建新的 CSR 很有用。
例如,在钥匙串工具“Public Key”中保持选中状态,或者任何没有与它对齐的私钥的现有证书。现在按照“从证书颁发机构请求证书”流程。
对我来说,问题是一个被搞砸的证书。
识别不良证书:
对我来说,我试图退出生成的 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”。检查附加的图像
我的mac也有同样的问题,我只是转到系统首选项,MySQL,选择MySQL版本,初始化数据库,输入密码,好的。然后它的工作
解决了!不得不将“用户证书”更改为“代码签名”。