在 openssl 文档中,它指出(在http://www.openssl.org/docs/apps/x509.html#INPUT_OUTPUT_AND_GENERAL_PURPOS)'-in' 选项
如果未指定此选项,则指定从中读取证书的输入文件名或标准输入。
我正在尝试弄清楚如何使用私有 CA 签署 CSR 并stdin
发送 CSR。以下行会产生错误
openssl x509 -req -CA CA.pem -passin pass:abcdefg -set_serial 40 "-----BEGIN CERTIFICATE REQUEST-----###########-----END CERTIFICATE REQUEST-----"
(其中 ###### 代表 CSR 数据)
错误是:
unknown option -----BEGIN CERTIFICATE REQUEST-----###########-----END CERTIFICATE REQUEST-----
它将输入作为一个选项。
正在做
openssl x509 -req -CA CA.pem -passin pass:abcdefg -set_serial 40 -in request.pem
其中 request.pem 包含完全相同的数据,即"
第一行中两个之间的数据是成功的。
我究竟做错了什么?
答案1
呃,您不是在 stdin 上提供 CSR,而是将其指定为参数。要从 stdin 提供它,您需要从文件重定向它,或者从另一个命令将其传输。例如:
echo "-----BEGIN CERTIFICATE REQUEST-----###########-----END CERTIFICATE REQUEST-----" | openssl x509 -req -CA CA.pem -passin pass:abcdefg -set_serial 40
或者,如果 CSR 存储在 csr.pem 中:
openssl x509 -req -CA CA.pem -passin pass:abcdefg -set_serial 40 < csr.pem