PythonでCSRを生成するスクリプトを書いています。スクリプトは非常に単純です。以下を使用して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)
ただし、ユーザーが希望するパスワードで秘密鍵を暗号化する機能を追加したいと思います。これは通常、genrsaコマンドにオプション「-des3」を含めることで実行されますが、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")
ただし、スクリプトはフリーズするだけで、最初の通信ステートメントを通過することはありません。