2015-04-21 82 views
2

我正在使用pyOpenSSL生成CSR的質量。我可以使用密碼pyOpenSSL生成一個私鑰

我需要生成一個密碼保護的私鑰文件。

代碼片段:

key = crypto.PKey() 
key.generate_key(type, bits) 
f = open(_keyfile, "w" 
f.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, key)) 
f.close() 

我不能在任何地方的文檔發現,肯定whther與否我可以生成一個密碼鑰匙。

如果我使用命令行OpenSSL的我會做到以下幾點:

${OPENSSLCMD} req -new -newkey rsa:"${KEYSIZE}" -passout pass:"${DBPASS}" -out "${DBFILE}" -keyout "${DBKEYFILE}" -subj "${CERTDN}" -config "${OPENSSLCONFIG}" 

有沒有辦法使用pyOpenSSL的密碼添加到鑰匙的方法嗎?

回答

1

你離答案並不遠。要導出你寫的關鍵:

f.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, key)) 

由於OpenSSL.crypto.dump_privatekey函數接受一個可選的參數passphrase,你可能只是這樣做:

f.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, key, passphrase='your_passphrase_here')) 

編輯:

我可以」在文檔中的任何地方找到確認是否可以用密碼生成密鑰。

只是爲了澄清一個passphras不參與時產生的關鍵,但它是當出口的關鍵。同樣,無論何時使用OpenSSL.crypto.load_privatekey加載密鑰,都需要相同的密碼。

+0

非常感謝 - 謝謝。 – ilium007

相關問題