Назад | Перейти на главную страницу

pipe Запрос на подпись сертификата в команду opennsl x509

В документах openssl указано (at http://www.openssl.org/docs/apps/x509.html#INPUT_OUTPUT_AND_GENERAL_PURPOS) что опция '-in'

указывает имя входного файла для чтения сертификата или стандартный вход, если этот параметр не указан.

Я пытаюсь понять, как подписать CSR (используя частный CA), используя 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 содержит ТОЧНЫЕ данные, которые находятся между двумя "в первой строке УСПЕШНО.

Что я делаю не так?

Эмм, вы не предоставляете 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