Linux下使用OpenSSL验证签名出现unable to load key file错误如何解决
openssl签名验证报错unable to load key file排查与解决方案
排查步骤
- 补全命令前缀:你当前使用的验证命令缺少
openssl主程序前缀,子命令dgst无法独立运行,会直接触发密钥加载逻辑异常,正确的命令开头应为openssl dgst。 - 核对公钥文件路径:生成签名时私钥存放路径为
pki/A.key,若配对公钥A.pem同样存放在pki目录下,仅写A.pem会因当前工作目录下无该文件报错,需填写完整的相对路径或绝对路径,例如pki/A.pem。 - 校验公钥文件合法性:可运行
openssl rsa -in [公钥路径] -pubin -text -noout检测公钥是否能正常读取,若该命令也报错,说明公钥文件损坏、格式错误,或不是与签名私钥配对的合法PEM格式公钥。 - 检查公钥文件权限:确保当前执行命令的用户对
A.pem持有可读权限,权限不足也会触发无法加载密钥的报错。 - 对齐哈希算法参数:生成签名时指定了
-sha256哈希算法,验证命令也需同步添加该参数,避免后续密钥加载成功后仍出现验证失败问题。
修复后验证命令示例
假设公钥A.pem存放在pki目录下,完整命令如下:
openssl dgst -sha256 -verify pki/A.pem -signature ../notifications/notification_1.signature text.txt
补充注意:请确保
text.txt的内容与签名时输入的bla bla bla完全一致,否则即使密钥加载正常也会验证失败。
内容的提问来源于stack exchange,提问作者Diego muino
相关产品推荐
相关产品推荐

