我创建了几个自签名的 S/MIME 证书(使用 OSX Keychain 和 OpenSSL),然后将它们导出到 3 个文件中:
- 证书 (.cer)
- 私钥(.p12)
- 公钥 (.pem)
当尝试将它们导入另一台 Mac 时,证书和私钥可以顺利导入。但公钥无法导入。
相反,我收到以下错误消息:
发生错误。无法导入项目。
本次内容无法检索
如何导入公钥?是否需要将其转换为其他格式才能导入?
答案1
这是 OSX 中的一个错误。您可以按照以下答案从命令行导入:
https://stackoverflow.com/a/11979625/59198
命令是:
security import pub_key.pem -k ~/Library/Keychains/login.keychain
然后你需要在 keychain.app 中重命名密钥
答案2
证书实际上包含公钥的副本(以及名称和证书颁发机构的签名,表明该名称和公钥是一致的)。如果您使用的是基于证书的系统(如 SMIME),通常不需要将公钥作为单独的项目处理。如果您愿意,可以使用 openssl 命令从证书中提取公钥的副本x509
。
(我想知道 Keychain 是否拒绝导入公钥,因为它认为证书中已经有一份副本?Keychain 的错误消息通常很模糊。)
答案3
.p12 文件可以保存您的密钥对。如果其中包含您的私钥,系统将提示您输入密码。钥匙串将以嵌套方式显示私钥。如果导入正确,它应该显示在“我的证书”下。