Использование динамически создаваемых самоподписанных сертификатов в Python без изменения файловой системы

Итак, у меня есть динамически сгенерированный самоподписанный сертификат в python, и я хочу передать его ssl.wrap_socket, но похоже, что эта функция принимает только имя файла в качестве параметра.

Я знаю, что могу записать файл на диск, а затем прочитать его, а затем удалить. Я также работаю в Linux, поэтому я могу записать его в /run/user/1000/, чтобы он не касался реального диска, но , это все еще кажется неправильным. У кого-нибудь есть способ полностью обойти этап создания файла?

httpd.socket = ssl.wrap_socket (httpd.socket, certfile="cert.pem", server_side=True)

Спасибо!


person Roger Heathcote    schedule 06.12.2016    source источник
comment
Связано: stackoverflow.com/a/13905835/1113760   -  person Cosmic Ossifrage    schedule 06.12.2016


Ответы (1)


Нет

К сожалению, похоже, что библиотека SSL не поддерживает его. Вы можете просмотреть источник метода, который вы вызываете, здесь:

https://github.com/python/cpython/blob/master/Lib/ssl.py#L1131

и кажется, что имя certfile полностью передается коду C для обработки SSL (вы можете следить за параметром certfile через несколько вызовов функций в приведенном выше файле):

https://github.com/python/cpython/blob/master/Modules/_ssl.c#L3240

Извиняюсь!!

person Christopher Shroba    schedule 06.12.2016
comment
Справедливо. Я слышал, как несколько человек говорят, что openSSL — это обед для собак, и я начинаю в это верить! Спасибо за быстрый и исчерпывающий ответ. - person Roger Heathcote; 06.12.2016