我正在尝试使用在 ssl 握手中使用加密模块生成的自签名 x509 证书。我正在按照文档中的规定生成 PEM 文件的证书和密钥,并使用以下函数将它们写入文件:
def write_key_and_cert(self, certname="cert.pem", keyname="key.pem"):
with open(certname, "wb") as f:
f.write(self.cert.public_bytes(serialization.Encoding.PEM))
with open(keyname, "wb") as f:
f.write(self.private_key.private_bytes(encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.TraditionalOpenSSL,
encryption_algorithm=serialization.BestAvailableEncryption(b"passphrase"),),)
问题是在封装socket的过程中,服务器无法使用certfile和keyfile,导致挂起。我相信这是由于密钥文件被加密(ssl 包装没有解密密钥文件)。有没有办法使用加密模块生成的证书文件/密钥文件,如果有,怎么做?