Based on this documentation to use certificates:
https://python-zeep.readthedocs.io/en/master/transport.html
My code is:
from zeep import Client as zeepClient
from zeep.transports import Transport
from requests import Session
import os
file_pem = os.path.dirname(os.path.realpath(__file__)) + "/file.pem"
session = Session()
session.verify = file_pem
transport = Transport(session=session)
zeepclient = zeepClient('https://myurl.com:8000/demo/services/User?wsdl', transport=transport)
result = zeepclient.service.adUser(payload)
It doesn't work.
Error:
requests.exceptions.SSLError: HTTPSConnectionPool(host='myurl.com', port=8000): Max retries exceeded with url: /demo/services/User?wsdl (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",),))
Example .pem file:
-----BEGIN CERTIFICATE----- MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJzAlBgNVBAMTHkRpZ2lDZXJ0IFNIQTIg MIIElDCCA3ygAwIBAgIQAf2j627KdciIQ4tyS8+8kTANBgkqhkiG9w0BAQsFADBh MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD QTAeFw0xMzAzMDgxMjAwMDBaFw0yM................................... ....................................eNqzqPlt/yGFUzZgTHbO7Djc1lGA 8MXW5dRNJ2Srm8c+cftIl7gzbckTB+6WohsYFfZcTEDts8Ls/3HB40f/1LkAtDdC 2iDJ6m6K7hQGrn2iWZiIq -----END CERTIFICATE-----