Рейтинг:0

Автоматически вводить пользовательский ввод несколько раз для команды stdin

флаг us

Мне нужно выполнить преобразование цифровых сертификатов из pfx в pem во внешнем приложении, из которого я могу запускать системные команды. Я могу сделать это из CLI с помощью команды:

openssl pkcs12 -входящий путь/к/cert.pfx -исходящий путь/к/cert.pem 

Это запросит у пользователя пароль сертификата и, во-вторых, парольную фразу.

Я пробовал решение, представленное здесь: Автоматически вводить данные в командную строку

И это не работает для меня. Итак, если я попытаюсь (обратите внимание на разрывы строк):

printf 'пароль\nфраза_пароля\n' | openssl pkcs12 -входящий путь/к/cert.pfx -исходящий путь/к/cert.pem 

Он по-прежнему будет запрашивать у меня пароль и кодовую фразу. Я также пытался использовать эхо, безуспешно.

Любые идеи?

РЕДАКТИРОВАТЬ:

Следуя совету Level9, я попытался использовать параметры openssl, например:

openssl pkcs12 -in path/to/cert.pfx -out path/to/cert.pem -password pass:the_password -passout pass:

Я пробовал как указывать кодовую фразу, так и нет, как в примере. Теперь он генерирует файл pem, но если я попытаюсь открыть его из своей файловой системы, просто чтобы проверить правильность, то меня попросят ввести пароль, но он не примет тот, который я указал в командной строке.

bac0n avatar
флаг cn
может быть, это может вам помочь: [Как сгенерировать ключ openSSL с помощью парольной фразы из командной строки?] (https://stackoverflow.com/questions/4294689/how-to-generate-an-openssl-key-using-a -парольная-фраза-из-командной строки)
Рейтинг:1
флаг cn

Посмотрите варианты указания паролей в openssl.

openssl pkcs12 -помощь

Если это не сработает для вас, попробуйте утилиту «expect».

sudo apt install ожидать
luis.ap.uyen avatar
флаг us
Я пытался изучить параметры команды (см. Мой раздел редактирования в вопросе), но, похоже, он не работает. Поскольку вы знали, что есть что-то, предоставляемое опциями openssl, не могли бы вы сказать мне, делаю ли я что-то не так?
Level9 avatar
флаг cn
Я не в состоянии попробовать это сейчас, но если пароль pfx - pfxpass, попробуйте ввести `openssl pkcs12 -in path/to/cert.pfx -out path/to/cert.pem -passin pass:pfxpass -passout pass: `Конечно, вы можете указать пароль после : в последней команде, если вам нужен пароль pem-файла.
luis.ap.uyen avatar
флаг us
Теперь это работает. Большое спасибо! Я до сих пор не знаю о разнице опций -password -passin и -passout и зачем префикс "pass" к значению (я не разбираюсь ни в цифровых сертификатах, ни в Linux CLI), но трогать не буду что-либо! :D

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.