使用python进行SSL连接处理PEM文件

2024-10-04 03:22:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含RSA私钥和证书列表的PEM文件。我使用下面的代码使用PEM包将PEM文件分离为密钥文件和证书文件,然后将它们插入flask服务器

这段代码可以工作,但我想看看是否有一种使用python处理pem文件的有效方法

Python代码:

from api import app
from gevent.pywsgi import WSGIServer
import pem
from pem import RSAPrivateKey
from pem import Certificate
import os

Mylist = pem.parse_file(r"C:\Desktop\MyPEMFile.pem")
if os.path.exists("APIKEY.key") == False:
    for ele in Mylist:
        if isinstance(ele, RSAPrivateKey):
            f = open ("APIKEY.key","w")
            f.write(str(ele))
            f.close()

if os.path.exists("APICERTIFICATE.crt") == False:
    for ele in Mylist:
        if isinstance(ele, Certificate):
            f= open ("APICERTIFICATE.crt","a")
            f.write(str(ele))
            f.close


http_server = WSGIServer(("localhost", 443), app,keyfile='APIKEY.key', certfile='APICERTIFICATE.crt')
http_server.serve_forever()

Tags: 文件key代码fromimportifospem
2条回答

您应该能够将MyPEMFile.pem用作certfilekeyfile。底层OpenSSL将只从文件中提取certfile参数的证书和keyfile参数的密钥。简而言之,扔掉PEM解析,只需执行以下操作:

cert_and_key = "C:\Desktop\MyPEMFile.pem"
http_server = WSGIServer(("localhost", 443), app, \
    keyfile=cert_and_key, certfile=cert_and_key)
http_server.serve_forever()

You can get your answer here. 否则请使用以下代码段:

certs = pem.parse_file(file_path)  # using pem module
            for pem_certificates in certs:
                strcert = str(pem_certificates)
                # using pyOpenSSL module. 
                loadCert = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM,
                                                           strcert)  # FILETYPE_ASC1
                issuer = loadCert.get_issuer()

快乐编码!!! 你需要缩进它。(道歉)

相关问题 更多 >