在openssl文档中,它声明(在http://www.openssl.org/docs/apps/x509.html#INPUT_OUTPUT_AND_GENERAL_PURPOS)“-in ”选项
如果未指定此选项,则指定要从中读取证书的input文件名或标准input。
我试图找出如何使用stdin发送CSR来签署CSR(使用私有CA)。 以下行会生成一个错误
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-----
它需要input是一个选项。
干
openssl x509 -req -CA CA.pem -passin pass:abcdefg -set_serial 40 -in request.pem
其中request.pem包含EXACT第一行中两个" s "之间的相同数据是" SUCCESSFUL”。
我究竟做错了什么?
呃,你没有提供标准input的CSR,你指定它作为参数。 要提供它从标准input您需要redirect它从一个文件,或pipe从另一个命令。 例如:
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