使用 openssl smime 进行数据验证失败

Data verification with openssl smime fails

我正在使用 openssl smime 来签署和验证数据。

要使用 openssl 签署文本文件,我使用以下命令:

openssl smime -sign -in sample.txt -out mail.msg -signer cert.pem -inkey key.pem

那我进行验证:

openssl smime -verify -in mail.msg -CAfile allCA.pem

验证成功

我的问题是我有一个外部工具可以使用以下命令执行验证:

openssl smime -verify -in mail.msg -inform DER -CAfile allCA.pem

如何签署我的 txt 文件,以便可以使用上一个命令对其进行验证?

目前我尝试过的:

openssl smime -sign -in sample.txt -out mail.msg -outform DER -signer cert.pem -inkey key.pem

但是我在尝试验证我的邮件时遇到错误:

Verification failure
140204331579208:error:2107507A:PKCS7 routines:PKCS7_verify:no content:pk7_smime.c:291:

调用签名操作的方式会创建分离签名,因此您需要传递 -content sample.txt 来验证命令。但是,可以创建将消息与签名(-nodetach 参数)一起封装的结构。

这是您要查找的签名命令:

openssl smime -sign -in data.dat -out mail.msg -signer cert.pem -inkey key.pem -outform DER -nodetach