我有几个密钥似乎是用相同名称生成的。我想知道哪个公钥与哪个私钥匹配,以便我可以重命名/删除它们。这是否重要(保留公钥)还是每次请求证书时都会生成公钥?
答案1
我想你已经能够解决你的问题了,因为这是一个老话题,但我只是想写一个回复以供将来参考。
基本思路是导出你的私钥和公钥,然后使用 openssl 查看它们的模数。匹配的私钥/公钥将具有相同的模数。
以下是查看私钥模数的方法:
在 Keychain Access 中导出您的私钥并选择“个人信息交换 (.p12)”文件格式。这将创建 .p12 文件。
启动终端并使用 openssl 将 .p12 文件转换为 .pem 文件:
openssl pkcs12 -in key.p12 -out key.pem -nodes
使用openssl查看pem私钥的模数:
openssl rsa -in key.pem -modulus -noout
以下是查看公钥模量的方法:
在 Keychain Access 中导出您的公钥并选择“隐私增强邮件 (.pem)”文件格式。这将创建 .pem 文件。
此 .pem 文件是 PKCS#1 PEM 文件(带有标头
-----BEGIN RSA PUBLIC KEY-----
),而 openssl 只能读取 PKCS#8 PEM(带有标头-----BEGIN PUBLIC KEY-----
)。因此,在 TextEdit 中打开导出的公钥,RSA
从标头和页脚中删除该位,然后保存更改。使用openssl查看pem公钥的模数:
openssl rsa -pubin -in pubkey.pem -modulus -noout
还请注意,事实上,您也可以删除公钥并从私钥重新创建它们(这样您就可以确定匹配对)。要从私钥创建匹配的公钥,请使用以下 openssl 命令:
openssl rsa -in key.pem -pubout -out pubkey.pem