我发现了两个解决方案你的问题。
您可以使用rsautl那样:(用私钥:my.key和公钥我-pub.pem)
$ openssl rsautl -sign -inkey my.key -out in.txt.rsa -in in.txt
Enter pass phrase for my.key:
$ openssl rsautl -verify -inkey my-pub.pem -in in.txt.rsa -pubin
Bonjour
使用这种方法,所有的文档包含在签名文件中,并由最终命令输出。
但在我的情况下,我的证书说:签名算法:sha1WithRSAEncryption。 因此,我建议您使用签名文件的标准方法在4个步骤:(用于所有非对称的电子签名,以免过充签名文件和/或CPU使用此方法)
- 创建消化文件签署(发件人)
- 签署私钥(发件人)消化
- 的文件创建摘要验证(收件人)
- 验证签名W¯¯第i个公钥(收件人)
的OpenSSL做这两个步骤:
$ openssl dgst -sha256 -sign my.key -out in.txt.sha256 in.txt
Enter pass phrase for my.key:
$ openssl dgst -sha256 -verify my-pub.pem -signature in.txt.sha256 in.txt
Verified OK
使用这种方法,您发送的收件人两个文件:原始文件明文,签名文件签署摘要。注意:签名文件不包含整个文档!只有摘要。
任何运气的答案? –
你的方法是正确的,我错过了消化一部分,试图签下全文档!感谢您的帮助!我还发现了一些有用的链接,我用它来做X.509 CA的事情:http://sandbox.rulemaker.net/ngps/m2/howto.ca.html http:// octaldream .com /〜scottm/talks/ssl/opensslca.html – c2h2