我有一个这样的证书文件:
-----BEGIN CERTIFICATE-----
MIIHCDCCBPC ....
我可以通过转到“文件->导入项目”(它是“Elin”)使其显示在“证书”下。
但是我无法将其添加到“我的证书”中,我认为在连接到某些网站时显示它是必要的:
我怎样才能把它拿到那里?(例如,我需要把它转换成 .p12 吗?在这种情况下,该怎么做?)
答案1
简洁版本:
除非您拥有与证书中的公钥匹配的私钥,否则您无法将其用作证书。找到您放置私钥的位置并将其导入钥匙串,钥匙串访问将自动发现它与该证书中的公钥匹配,并开始在“我的证书”列表中显示该证书。
长版本:
证书是您可以自由分发的公共文件。它们只是将您的身份(即您的全名、用户名、电子邮件地址等识别信息)安全地链接到您的民众钥匙。
由于证书是可公开分发的,因此仅仅拥有证书的副本并不能证明您是证书中所提及的人员,也不能证明证书中的公钥确实是您的公钥。
为了证明证书是你的,你必须拥有私人的与形成匹配集的密钥民众证书中包含的密钥。
如果您只有一个 .p7b 或 .cer 或 .pem 文件,它很可能只包含一个证书,但不包含与之相关的私钥。
私钥必须完全保密,不得泄露给其他人。当存储在磁盘上时,它们应该存储在加密文件中,您需要密码才能解密。安全存储证书的典型方法以及匹配的私钥在加密的、受密码保护的文件中,有一个 .p12 (PKCS#12) 文件。查看您是否已经在某处有一个 .p12 文件。
如果“钥匙串访问”在您的个人钥匙串中显示证书,但没有在“我的证书”列表中显示,则意味着您只导入了证书,但没有导入与之相关的私钥,因此 OS X 无法判断它是否真正属于“您”。
你需要去找到你的私人的密钥在您首次生成公钥/私钥对时存储。生成密钥对是获取证书的第一步。首先生成密钥对,然后将公钥连同您的身份信息放入证书签名请求(又名 CSR,req)中,并发送给证书颁发机构 (CA) 进行签名。CA 应该验证您的身份信息和公钥,然后如果一切正常,他们会签署 CSR,创建证书。签名的证书将发回给您,您必须将其与您在第一步中生成的私钥进行匹配,才能真正使用它。
请注意,CA 的作用并没有什么特别之处。它不一定是像 Verisign 这样的公司。每台个人计算机操作系统都包含充当 CA 所需的所有软件。Keychain Access 的证书助手功能甚至会引导您完成 CA 设置的设置,以供您个人使用。
如果您不记得生成密钥对,那么您可能正在使用一些可以自动为您生成密钥对的软件。例如,CA 网站可以在其 CSR Web 表单上使用一个特殊的 HTML 标记,该标记会告诉您的 Web 浏览器自动生成密钥对并仅将公钥与 Web 表单一起提交。当您在这样的表单上使用 Safari 时,私钥将存储在您登录的 OS X 用户帐户的用户钥匙串中。当您在 Windows 中使用 IE 时,私钥将存储在与此相同的 Windows 中(Microsoft 将其称为用户的“证书存储”;“存储”是指“存储容器”而不是“零售店” :-)。
我无法告诉你你的私钥在哪里,因为我不知道你用什么软件创建了它,即使我知道,我也不确定你告诉该软件将你的私钥保存在哪里。你可能得自己去侦查。
如果您找不到您的私钥,您可能需要考虑它已被泄露并撤销您的证书(您可能需要联系您的 CA 来执行此操作)并重新开始生成新的密钥对,创建一个新的 CSR,让 CA 对其进行签名并颁发证书,将其与新的私钥匹配等。这有点像意识到您丢失了家门钥匙的副本,并选择让锁匠重新设置所有门锁以确保安全。
总结:去找到你的私钥并将其导入到钥匙串中。