У меня есть следующий код Python:
import subprocess
p=subprocess.Popen(["openssl","genrsa","-aes256","-out","ise.key.pem","2048"],stdin=subprocess.PIPE,stdout=subprocess.PIPE)
inputdata="123456"
p.communicate(input=inputata)
p.communicate(input=inputata)
Вывод приведенного выше кода:
pan@pan:~/python-scripts$ Generating RSA private key, 2048 bit long modulus
........................+++
...................................+++
e is 65537 (0x10001)
Enter pass phrase for ise.key.pem:
User interface error
140617148802712:error:0906906F:PEM routines:PEM_ASN1_write_bio:read key:pem_lib.c:379:
Я хочу, чтобы ввод был предоставлен Python, не должно быть никакого взаимодействия с пользователем:
Я знаю, что сертификат может быть сгенерирован библиотекой python pyOpenSSL, но я хочу использовать обычную команду linux
Моя версия Python :
Python 2.7.12 (default, Dec 4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "enter code here`license" for more information.
Я увидел следующую ссылку, но она не помогла
Python выполняет командную строку, отправляя ввод и читая вывод
Если вы запускаете команду в оболочке, она выполняется следующим образом:
pan@pan:~/python-scripts$ openssl genrsa -aes256 -out ise.key.pem 2048
Generating RSA private key, 2048 bit long modulus
..............................................................+++
..+++
e is 65537 (0x10001)
Enter pass phrase for ise.key.pem:
Verifying - Enter pass phrase for ise.key.pem: