Колба с JSONRPC с HTTPS-сервером с неподтвержденным сертификатом - PullRequest
0 голосов
/ 03 октября 2019

Я следую примеру здесь , показывающему, как выполнять вызовы JSON RPC с Flask. И у меня все работает с HTTP-сервером, но я хочу использовать HTTPS-сервер. Я также хочу использовать сертификат / ключ, которые не из надежного источника, они мои собственные. В некоторых частях кода я использую requests, и я могу установить verify=False, и эти запросы работают.

Но я не могу найти способ отключить проверку с помощью from flask_jsonrpc.proxy import ServiceProxy.

Код клиента выглядит следующим образом:

from flask_jsonrpc.proxy import ServiceProxy

proxy = ServiceProxy('https://127.0.0.1:6600/api')
r = proxy.Test.ping(username='name', password='password')

Точный код, приведенный выше, работает, если я использую HTTP (т.е. меняю сервер на HTTP). Просматривая код ServiceProxy, я не видел способа установить verify=False для чего-либо ... Или, может быть, есть способ изменить headers, используемый ServiceProxy для достижения настройки?

Ошибка, которую я получаю, <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)>, это то, что я получаю от requests, если я не установлю verify=False (что я делаю, и они работают).

Дополнительная информация:

1) В этой настройке клиенты и серверы находятся в изолированной сети, а не в Интернете. Я подумал, что могу получить «бесплатно» с использованием конечных точек HTTPS, это шифрование пакетов между этими серверами / клиентами. Поскольку этих компьютеров нет в Интернете, я не думал, что сертификаты могут быть проверены извне, и / или я не хотел, чтобы срок действия сертификатов истек через год или два.

2) В этой настройкеFlask server используется для запуска клиента и серверов "в производстве". Я знаю, что это не рекомендуется.

3) Приложение Flask запускается следующим образом,

app.run(host="0.0.0.0", port=6600, debug=False, ssl_context=('cert.pem', 'key.pem'))

4) Сертификаты создаются из,

openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...