Работа с файлами PEM с использованием python для соединения SSL - PullRequest
0 голосов
/ 31 марта 2020

У меня есть файл PEM, содержащий закрытый ключ RSA и список сертификатов. Я использую приведенный ниже код для разделения файла PEM на файл ключей и файл сертификата с помощью пакета pem, а затем подключаю их к flask серверу.

Этот код работает, но я хочу посмотреть, есть ли эффективный способ работы с файлом pem, используя python?

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

1 Ответ

0 голосов
/ 31 марта 2020

Вы можете просто использовать MyPEMFile.pem как certfile и keyfile. Базовый 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...