Код: Выделить всё
HTTPSConnectionPool(host='xxx.yyy.zz', port=32454): Max retries exceeded with url: /south/log-reports?clientAddress=68c038a4... (Caused by SSLError(SSLCertVerificationError(1, "[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'xxx.yyy.zz'. (_ssl.c:1007)")))
Когда я запускаю тесты с помощью openssl, curl и библиотеки ssl в Python, все работает.
мое приложение работает под управлением Python 3.10. 14 с использованием:
запросов: 2.31.0
urllib3: 2.2.2
OpenSSL: OpenSSL 3.1.7 3 сентября 2024 г.
Вот как инициализируются мои запросы. Объект сеанса.
Код: Выделить всё
self.cms_cert = "~/cert/ca/cacert.pem"
# Session for HTTP persistent connection
self.session = requests.Session()
self.host = host
self.timeout = timeout
self.connection_restored = connection_restored
self.api_status = ApiClientStatus()
self.api_status.set_connection_restored(self.connection_restored)
cms_cert_normalized = str(cms_cert).strip().upper()
if cms_cert_normalized == 'FALSE':
adapter = CustomAdapter()
self.session.mount("https://", adapter)
self.session.verify = False
elif cms_cert_normalized == 'TRUE':
self.session.verify = True
else:
self.session.verify = cms_cert
if gateway_cert:
self.session.cert = gateway_cert
Интересно, не стал ли этот знаменитый SAN обязательным.
Подробнее здесь: https://stackoverflow.com/questions/791 ... -in-python