将证书签名请求导入到 opennsl x509 命令中

将证书签名请求导入到 opennsl x509 命令中

在 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

相关内容