Python/Requests/SSL — как заставить работать сертификаты?
Нужно сделать из питона requests.POST на сайт с https. Без ssl не работает, предлагать verify=False не надо.Запрос через curl с Мака проходит, видимо, там с сертификатами всё в порядке. С сервера Ubuntu curl проходит, а вот питон затыкается. С десктопа ubuntu даже curl не проходит.
Выкурил пачку мануалов, но ничего не помогает. Установленный и обновлённый certifi и адрес к сертификату, что он выдаёт, не помогает.
Как это правильно настраивать?
Так это...ошибка-то какая? Если просто невозможно подтвердить подлинность - накатывайте более свежую версию ca-certificates на машину, откуда запрос не проходит.
Если с verify=false проходит, значит опять ошибка неизвестного издателя. Если бы здесь был фак, этот вопрос уже стоило бы в него занести - потому что на эти грабли встают все. Сертификат самоподписанный?
Вот такие ошибки ещё бывают.
requests.exceptions.SSLError: HTTPSConnectionPool(host='api.site.com, port=443): Max retries exceeded with url: /api/v1/foo/attachments (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",),))
776166, Ну понятно, проверка сертификата не проходит. openssl verify certfile.crt
и читать маны до тех пор пока верификация сертфииката не пройдет. А не проходит она скорее всего из-за неизвестного издателя :)