I-ssl.get_server_certificate ayixoxisani ne-HTTP proxy. Qala ngokumisa ithaneli, bese wenza i-TLS ngegama le-host okuyiwa kulo futhi uthole isitifiketi se-peer.

Nge-HTTP proxy engadingi ukuqinisekiswa, usebenzisa i-host ne-port yekhandidethi kusuka kuhlu lwe-HTTP proxy:

from contextlib import closing
import http.client
import ssl

hostname = "example.com"
context = ssl.create_default_context()

with closing(http.client.HTTPConnection(
    "proxy.example.net", 8080, timeout=10
)) as connection:
    connection.set_tunnel(hostname, 443)
    connection.connect()

    with context.wrap_socket(
        connection.sock, server_hostname=hostname
    ) as tls:
        certificate_der = tls.getpeercert(binary_form=True)

certificate_pem = ssl.DER_cert_to_PEM_cert(certificate_der)

I-HTTPConnection iphatha isicelo se-CONNECT kanye nempendulo yaso. I-SSL context bese iqinisekisa uchungechunge kanye nobuwena bendawo okuyiwa kuyo ngaphambi kokuba isitifiketi sibuyiswe. Akukho HTTP GET endaweni okuyiwa kuyo edingekayo kulokhu kubambisana ngesandla.

Uma indawo isebenzisa i-CA yangasese evunyelwe, layisha leyo CA ku-context esikhundleni sokuvala ukuqinisekisa. Uchungechunge olwenqatshiwe lwenza ukubambisana ngesandla okubonisiwe kuhluleke.

I-getpeercert ibuyisela isitifiketi seqabunga se-peer, hhayi uchungechunge oluphelele oluthunyelwe ngokuzenzakalela. Ngokugada i-TLS okuthenjwayo, isitifiketi se-peer singaba isitifiketi esakhiwe umlamuli saleli gama le-host. Gcina lowo mehluko lapho usiqhathanisa nesitifiketi esibonwe ngomunye umzila.

Izihloko ezihlobene