出于某种原因,我似乎无法找到这个基本问题的答案。我收到了一封加密的 S/MIME 电子邮件,我想使用 解密它openssl smime
。但是,我认为我无法以正确的格式提供密钥。这就是我所做的:
- 将电子邮件消息(原始文本格式)保存为
smime-ok.txt
- 从 OS X 钥匙串中导出我的密钥为
myself.p12
- 从 OS X 钥匙串导出我的公共证书
myself.cer
然后我尝试
openssl smime -decrypt -in smime-ok.txt -recip myself.p12
但我明白
unable to load certificate
37740:error:0906D06C:PEM routines:PEM_read_bio:no start line:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.7/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE
我也尝试了-inkey myself.p12 -recip myself.cer
其他一些方法,但没有什么效果。我猜我的密钥文件没有被读取,或者没有被正确读取,因为我也没有被提示输入密码。
我怀疑我可能基本上误解了如何使用openssl smime
。
答案1
事实上,openssl smime
输入需要 PEM 格式-recip
,但 p12 文件是 PKCS12 格式。以下是如何将p12
文件转换为pem
文件:
openssl pkcs12 -in myself.p12 -out myself.pem
此后,以下内容将按预期解密电子邮件:
openssl smime -decrypt -in smime-ok.txt -recip myself.pem