Deimhniú piara TLS a léamh trí sheachfhreastalaí HTTP i Python
Úsáid tacaíocht tolláin HTTPConnection Python sula dtéann tú an socket i gcomhthéacs SSL a dhéanann bailíochtú.
Ní dhéanann ssl.get_server_certificate idirbheartaíocht le seachfhreastalaí HTTP. Cuir an tollán ar bun ar dtús, ansin déan TLS le hainm óstaigh an chinn scríbe agus faigh deimhniú an phiara.
Le haghaidh seachfhreastalaí HTTP gan fhíordheimhniú, ag baint úsáide as óstach agus port iarrthóra ón liosta seachfhreastalaithe HTTP:
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)
Láimhseálann HTTPConnection an t-iarratas CONNECT agus a fhreagra. Ansin fíoraíonn an comhthéacs SSL an slabhra agus féiniúlacht an chinn scríbe sula gcuirtear an deimhniú ar ais. Ní theastaíonn aon HTTP GET chuig an gceann scríbe don chroitheadh láimhe seo.
Má úsáideann an timpeallacht CA phríobháideach cheadaithe, luchtaigh an CA sin sa chomhthéacs in ionad an fhíorú a dhíchumasú. Déanann slabhra diúltaithe an croitheadh láimhe a thaispeántar a mhainneachtain.
Filleann getpeercert deimhniú duille an phiara, ní slabhra iomlán a onnmhairítear go huathoibríoch. Le hidircheap TLS iontaofa, féadfaidh deimhniú an phiara a bheith ar an deimhniú a ghineann an idirghabhálaí don ainm óstaigh seo. Coinnigh an t-idirdhealú sin nuair a dhéanann tú é a chur i gcomparáid le deimhniú a breathnaíodh trí bhealach eile.