数字签名电子邮件的CLI验证


10

我是爱丽丝,已经收到鲍勃的签名电子邮件。

我使用Web电子邮件客户端(例如GMail),并且看到附件之一是smime.p7s

我找到了“显示原始消息”选项,并将内容保存到中message.orig

假设鲍勃(Bob)签署了电子邮件,我如何从命令行进行验证?

(假设鲍勃使用某些受尊敬的权威机构签署的认证密钥-我不知道是哪个,但我想是这样)

(爱丽丝不想仅使用一封邮件就安装具有适当功能的电子邮件客户端)


+1表示答案,-1表示未提及Trudy(请编辑:P)
Avio 2014年

Answers:


9
openssl smime -verify -in message.orig

添加-CAfile-CApath选项以指定与系统默认值不同的受信任证书列表。

您可以通过以下方式从用于签署电子邮件的证书中获取信息:

openssl smime -noverify -in message.orig -pk7out |
  openssl pkcs7 -print_certs -text -noout

或者从smime.p7s中提取出来:

openssl pkcs7 -in smime.p7s -text -inform DER -print_certs -noout

好的,我刚刚更新了ca-certificates(Arch pacman -S ca-certificates),但是我得到了错误:Verification failure 140717529130664:error:21071065:PKCS7 routines:PKCS7_signatureVerify:digest failure:pk7_doit.c:1048: 140717529130664:error:21075069:PKCS7 routines:PKCS7_verify:signature failure:pk7_smime.c:410: 您有什么线索吗?也许“打开原始消息”然后保存源,并对消息源进行了一些转换?
Grzegorz Wierzowiecki 2012年

是否openssl pkcs7 -in smime.p7s -text -inform DER -print_certs -noout有效(告诉您pk7文件中有关证书的信息)?
斯特凡Chazelas

是。(顺便说一句,这是非常有用的命令,请添加到您的答案中,我相信其他用户也会从中受益。)
Grzegorz Wierzowiecki 2012年


我刚刚尝试在gmail中使用“显示原始”,然后在Firefox中使用“另存为”,命令运行正常。我还注意到gmail在展开它们时显示了“签名人”标头。
斯特凡Chazelas
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.