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