简体   繁体   English

使用 python 打开受密码保护的 .pem 和 .crt 文件

[英]open a password protected .pem and .crt file using python

I created a private and pulic key key using command:我使用命令创建了一个私钥和公钥:

 .....
 openssl genrsa -aes256 -passout pass:password -out key.pem
 4096 &&
openssl rsa -in key.pem -passin pass:password -pubout -out 
 pukey.pub

and then created cert file using this command:然后使用此命令创建证书文件:

 openssl req -new -key key.pem -passin pass:password -x509 -out 
 keycert.pem -days 365000 -subj '/CN=localhost'

so I have protected the key.pem with a password and I want to open it in my python program, how can I specify the password to open key.pem file and keycert.pem file?所以我用密码保护了key.pem,我想在我的python程序中打开它,如何指定打开key.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()
   

when I run this I get error:当我运行它时出现错误:

E1117 13:57:03.515461744   70812 ssl_transport_security.cc:854] 
Invalid private key.

which shows it could not open the key.pem file as it is protected by a password这表明它无法打开 key.pem 文件,因为它受密码保护

use this line:使用这一行:

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()
    )

solved the problem, first the private key is loaded second it is converted to the bytes.解决了这个问题,首先加载私钥,然后将其转换为字节。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM