Я пишу скрипт для генерации CSR в Python.Сценарий очень прост.Я генерирую закрытый ключ RSA, используя следующее:
keycmd = "openssl genrsa -out mykey.pem 2048"
keyprocess = Popen(keycmd, shell=True, stdout=PIPE)
csrcmd = "openssl req -new -key mykey.pem -subj "+ subj + " -out mycsr.csr"
reqprocess = Popen(csrcmd, shell=True, stdout=PIPE)
Однако я хочу добавить функциональность для шифрования личного ключа паролем по желанию пользователя.Обычно это делается путем включения опции «-des3» в команду genrsa, но я не знаю, как передать строку из стандартного ввода Python в процесс OpenSSL.Буду признателен за любую помощь.
Что я хочу сделать, это:
keycmd = "openssl genrsa -des3 -out mykey.pem 2048"
keyprocess = Popen(keycmd, shell=True, stdin=PIPE, stdout=PIPE)
keyprocess.communicate("password")
keyprocess.communicate("password")
Однако это не работает, скрипт просто зависает и никогда не проходит первый оператор сообщения.