在OS X上的“钥匙串访问”中,找到匹配的公钥和私钥


14

我有几个键似乎是用相同的名称生成的。我想知道哪个公钥与哪个私钥匹配,所以我可以重命名/删除它们。这是否很重要(保持公用密钥不变),还是每次您请求证书时都会生成公用密钥?


您是否能够找到解决方案?我有同样的问题,似乎找不到答案。
Axeva 2011年

不,我没有。我发现最好的解决方案是给他们起更多唯一的名字,不幸的是。
ACBurk 2011年

是的,在我们已经犯了一个错误的名字,即命名错误。;)我曾经听到过一些传言,暗示OpenSSL命令行工具也许可以提供帮助,但是我还没有弄清楚该怎么做。
Axeva

Answers:


12

我想您已经能够解决您的问题,因为这是一个老话题,但是我只是写一封回复以供将来参考。

基本思想是导出私钥和公钥,并使用openssl查看其模数。匹配的私钥/公钥将具有相同的模数。

这是如何查看私钥的模数:

  1. 在“钥匙串访问”中,导出您的私钥,然后选择“个人信息交换(.p12)”文件格式。这将创建.p12文件。

  2. 启动终端,然后使用openssl将.p12文件转换为.pem文件:

    openssl pkcs12 -in key.p12 -out key.pem -nodes
    
  3. 使用openssl查看pem私钥的模数:

    openssl rsa -in key.pem -modulus -noout
    

这是如何查看公钥的模数:

  1. 在“钥匙串访问”中,导出您的公钥,然后选择“隐私增强邮件(.pem)”文件格式。这将创建.pem文件。

  2. 此.pem文件是PKCS#1 PEM文件(带有标头-----BEGIN RSA PUBLIC KEY-----),而openssl只能读取PKCS#8 PEM(带有标头-----BEGIN PUBLIC KEY-----)。因此,在TextEdit中打开导出的公钥,然后RSA从页眉和页脚中删除该位,然后保存更改。

  3. 使用openssl查看pem公钥的模数:

    openssl rsa -pubin -in pubkey.pem -modulus -noout
    

另请注意,实际上,您还可以删除公钥,然后从私钥中重新创建它们(这样一来,您可以确定某些匹配对)。要从私钥创建匹配的公钥,请使用以下openssl命令:

openssl rsa -in key.pem -pubout -out pubkey.pem

1
谢谢,古老的问题,但似乎总是有问题,因此很高兴能有一个好的解决方案。
ACBurk

1
辉煌,正是我想要的。感谢您的良好描述。
Baza207

我刚刚在SuperUser上再次问了这个问题,但是很幸运地发现了已经给出的答案。.+1了。
汤姆·佩斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.