Ошибка проверки сертификата при запуске Python под наблюдением - PullRequest
0 голосов
/ 21 января 2019

У меня есть программа, которая успешно работает в моем пользователе / ​​virtualenv. Программа обращается к API, используя requests. Для целей этого поста вся программа может быть прочитана как:

requests.get("https://example.com")

Это прекрасно работает, когда я вызываю его из командной строки. Однако я пытаюсь заставить его работать под supervisord, и по любой причине, когда я делаю это таким образом, происходит сбой с ошибкой SSL, как показано ниже:

SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)")

Он использует того же пользователя, среду Python, каталог и т. Д. Любая идея, что еще проверить / что еще может быть причиной этого?

Редактировать: Я думаю, это может быть тип правил брандмауэра. Изучение этого варианта.

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Оказывается, это был прокси-сервер.Машина, на которой я работал, использует прокси-сервер squid, и мне пришлось добавить следующую строку, чтобы установить правильные переменные среды в конфигурации моего супервизора, чтобы она работала:

environment=http_proxy=http://proxy.server:3128/,https_proxy=http://proxy.server:3128/
0 голосов
/ 21 января 2019

Доступны ли сертификаты SSL в среде супервизора? Я предполагаю, что вы используете request.certs, поэтому сертификаты там, где ожидается requests.certs.where()?

...