我正在使用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:
答案 0 :(得分:1)
您调用签名操作的方式会创建分离签名,因此您需要将-content sample.txt
传递给验证命令。但是,可以创建将消息与签名(-nodetach
参数)一起封装的结构。
这是您正在寻找的签名命令:
openssl smime -sign -in data.dat -out mail.msg -signer cert.pem -inkey key.pem -outform DER -nodetach