Linux
無法驗證簽名(openssl)
我正在嘗試驗證簽名,但得到“無法載入密鑰文件”。這是具有 OpenSSL 版本 1.0.2(2015 年 1 月 22 日)的 CentOS 伺服器。
密鑰是這樣生成的:
ssh-keygen -t rsa -f serverkey -N '' -b 2048 mv serverkey serverkey-priv.pem ssh-keygen -f serverkey.pub -e -m pem > serverkey-pub.pem ; rm -f serverkey.pub
這導致serverkey-priv.pem & serverkey-pub.pem
我簽署這樣的消息:
openssl dgst -sha256 -sign serverkey-priv.pem -out message.sig message.txt
message.sig 文件生成良好。到現在為止還挺好。
但是,當我嘗試使用剛剛生成的 sig 文件驗證消息時:
openssl dgst -sha256 -verify serverkey-pub.pem -signature message.sig message.txt
我得到“無法載入密鑰文件。 ”
我究竟做錯了什麼?
我使用時得到明顯不同的輸出
openssl rsa -in serverkey-priv.pem -pubout -out serverkey-pub.pem
比我使用時
ssh-keygen -f serverkey.pub -e -m pem > serverkey-pub.pem
創建的公鑰文件
openssl rsa -pubout
確實成功地驗證了消息。看來 ssh-keygen 的-m pem
公鑰文件格式與openssl
預期的不兼容。事實上,使用命令讀取公鑰資訊openssl rsa -text
需要-RSAPublicKey_in
這似乎不是dgst
.