我正在使用 pyOpenSSL 大量生成 CSR。
我需要生成一个受密码保护的私钥文件。
代码片段:
key = crypto.PKey()
key.generate_key(type, bits)
f = open(_keyfile, "w"
f.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, key))
f.close()
我在文档中找不到任何地方可以确认我是否可以使用密码生成 key 。
如果我在命令行上使用 openssl,我会执行以下操作:
${OPENSSLCMD} req -new -newkey rsa:"${KEYSIZE}" -passout pass:"${DBPASS}" -out "${DBFILE}" -keyout "${DBKEYFILE}" -subj "${CERTDN}" -config "${OPENSSLCONFIG}"
有没有办法使用 pyOpenSSL 为 key 添加密码?
最佳答案
您离答案不远了。要导出您编写的 key :
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'))
已编辑:
I can't find anywhere in the docs that confirms whther or not I can generate a key with a passphrase.
澄清一下,生成 key 时不涉及密码,但导出 key 时会涉及。此外,每当您使用 OpenSSL.crypto.load_privatekey
加载 key 时需要相同的密码。
关于python - 我可以使用带有密码的 pyOpenSSL 生成私钥吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29763401/