Ben aşağıda bir kod vardır:SSL Bağlam
headers = {'content-type': 'ContentType.APPLICATION_XML'}
uri = "www.client.url.com/hit-here/"
clientCert = "path/to/cert/abc.crt"
clientKey = "path/to/key/abc.key"
PROTOCOL = ssl.PROTOCOL_TLSv1
context = ssl.SSLContext(PROTOCOL)
context.load_default_certs()
context.load_cert_chain(clientCert, clientKey)
conn = httplib.HTTPSConnection(uri, some_port, context=context)
Gerçekten bir ağ programcı değilim, bu yüzden bazı el sıkışma bağlantısı için googling yaptı ve gerekli fonksiyonu olarak ssl.SSLContext(PROTOCOL)
bulundu, kod çalışıyor .
Daha sonra roadblock'a bastım, yerel sürümüm 2.7.10'du, ancak tüm üretim kutularının 2.7.3'ü var, bu nedenle SSLContext
desteklenmiyor ve yükseltme python sürümü bir seçenek/denetimde değil.
ssl — SSL wrapper for socket objects okumayı denedim ama bundan bir anlam çıkaramıyordum.
(nafile içinde ) denedim neyi:
s_ = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s = ssl.wrap_socket(s_, keyfile=clientKey, certfile=clientCert, cert_reqs=ssl.CERT_REQUIRED)
new_conn = s.connect((uri, some_port))
ama döner:
SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)')
Soru - Güvenli https sahip olacak şekilde eski sürümü SSL Bağlam nasıl oluşturulacağını bağ?
Eski sürümün bir bağlam ile çalışabileceğini sanmıyorum. Eğer sertifika belirtmeden https bağlantısı, yani bağl = httplib.HTTPSConnection (host, port KEY_FILE, cert_file, sıkı, zaman aşımı) yapabilir misin ayrıntılı biraz daha –