簡體   English   中英

模擬用戶對由Python腳本運行的子進程的輸入

[英]Emulating user input to the child process run by Python script

我正在運行一個腳本,該腳本應使用標准的opensl應用程序通過cron創建自簽名SSL證書。 問題在於應用程序假設用戶交互,例如等待用戶輸入。 我的目標是使此過程完全自動化。

假設我是從Python腳本生成RSA私鑰和CSR(證書簽名請求)的

p = Popen(['openssl', 'genrsa', '-des3', '-out', 'server.key', '1024'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)

openssl要求用戶輸入密碼並進行驗證,即兩次輸入相同的密碼。 如果我們將密碼短語保存在腳本中,則將密碼傳遞給標准輸入的代碼應如下所示(提供的代碼不起作用,這只是我的實驗之一)

p.communicate(input=b'passphrase\npassphrase\n')[0]

Python 3.6.5,Windows 7

完成bash腳本以實現自動化

openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

使用openssl.cnf的更新解決方案也表示贊賞

我設法僅使用bash腳本創建了無人值守的解決方案(盡管我更喜歡使用Python來實現完全的可移植性,並且最初的問題與答案相距甚遠,盡管我無法對其進行編輯)

openssl genrsa -out server.key 1024
openssl req -new -sha256 -key server.key -out server.csr -subj "/C=NL/ST=Amsterdam/L=Amsterdam/O=Mycompany/OU=IT/CN=signature.mycompany.com"
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM