python запросов ('процедуры SSL', 'tls_process_server_certificate', 'ошибка проверки сертификата') - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь подключиться к серверу, используя сертификат и закрытый ключ, используя модуль запросов, но у меня возникают проблемы.

Мой код:

import requests

s = requests.Session()
s.cert = (certificate_file, key_file)
s.headers = {'Content-Type': 'text/xml;charset=UTF-8',
             'Accept-Encoding': 'gzip,deflate'}
r = s.post(url=url, data=request_body)

Ошибка:

Error: [('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')]

Странно то, что тот же сертификат и ключ, похоже, работают с модулем http.client

import ssl
import http.client

request_url = ...
request_headers = {
    'Content-Type': 'text/xml;charset=UTF-8',
    'Accept-Encoding': 'gzip,deflate',
}
request_body = ...


context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
context.load_cert_chain(certfile=certificate_file, keyfile=key_file)

connection = http.client.HTTPSConnection(host, port=443, context=context)

connection.request(method="POST", url=request_url,
                   headers=request_headers, body=request_body)

response = connection.getresponse()

Любые идеи и предложения приветствуются

...