Я пытаюсь подключиться к серверу, используя сертификат и закрытый ключ, используя модуль запросов, но у меня возникают проблемы.
Мой код:
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()
Любые идеи и предложения приветствуются