我使用命令创建了一个私钥和公钥:
.....
openssl genrsa -aes256 -passout pass:password -out key.pem
4096 &&
openssl rsa -in key.pem -passin pass:password -pubout -out
pukey.pub
,然后使用以下命令创建证书文件:
openssl req -new -key key.pem -passin pass:password -x509 -out
keycert.pem -days 365000 -subj '/CN=localhost'
所以我已经保护了密钥。pem与密码,我想在我的python程序中打开它,我如何指定密码打开密钥。Pem文件和keycert。pem文件?
with open('../key.pem', 'rb') as f:
private_key = f.read()
with open('../keycert.pem', 'rb') as f:
certificate_chain = f.read()
当我运行这个时,我得到错误:
E1117 13:57:03.515461744 70812 ssl_transport_security.cc:854]
Invalid private key.
显示无法打开密钥。Pem文件,因为它受密码保护
使用这一行:
with open('key.pem', 'rb') as f:
private_key=load_pem_private_key(f.read(), password="1".encode(),
backend=default_backend())
pem =private_key.private_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.TraditionalOpenSSL,
encryption_algorithm=serialization.NoEncryption()
)
解决了这个问题,首先加载私钥,然后将其转换为字节。