使用openssl从certificate.pem提取公钥出现未知参数错误如何解决
你遇到的报错是因为OpenSSL把Shell的重定向符号>识别成了x509子命令的传入参数,常见触发场景有两种:
- 你先执行了
openssl命令进入了OpenSSL的交互控制台,直接在交互界面输入了带>的完整命令,交互模式下不识别Shell的重定向符号,会把它当成命令参数处理 - 你把整条命令用引号包裹执行,导致
>没有被Shell解析为重定向操作,直接传给了OpenSSL
方案1(全环境通用,最稳妥)
直接使用OpenSSL自带的-out参数指定输出文件,完全不需要用到重定向符号,避免符号解析问题:
openssl x509 -pubkey -noout -in 实际证书文件路径.pem -out 自定义公钥文件路径.pem
注意把命令里的路径占位符替换成你本地的实际文件路径,不要保留原命令里的方括号。
方案2(坚持用重定向的情况)
确保你是在系统的默认命令行终端(Linux/macOS终端、Windows CMD/PowerShell均可)执行命令,不要提前进入OpenSSL交互模式,也不要给整条命令加引号:
openssl x509 -pubkey -noout -in 实际证书文件路径.pem > 自定义公钥文件路径.pem
结果验证
执行成功后打开输出的公钥文件,文件开头为-----BEGIN PUBLIC KEY-----、结尾为-----END PUBLIC KEY-----即为提取成功。
内容的提问来源于stack exchange,提问作者Willy Kelly
相关产品推荐
相关产品推荐

