我發現了兩個解決方案你的問題。
您可以使用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