python ssl request python-requests python-2.6

Envío de solicitud de TLS 1.2 en Python 2.6



ssl request (1)

El módulo ssl en Python 2.6 admite hasta TLS 1.0 solamente. Si no desea introducir dependencias adicionales (como pyOpenSSL como sugiere), deberá actualizar a Python 2.7 o 3.x para obtener soporte para las versiones más nuevas de TLS.

Para forzar una versión particular de TLS en Python 2.7.9 o posterior , construya un SSLContext con la constante PROTOCOL_* adecuada. Luego puede usarlo con cualquier API que le permita proporcionar su propio SSLContext .

import ssl import urllib2 ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) # set other SSLContext options you might need response = urllib2.urlopen(url, context=ctx)

Para usar una versión de protocolo particular o superior (incluidas las versiones futuras), use ssl.PROTOCOL_SSLv23 y luego deshabilite las versiones de protocolo que no desea usar:

ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23) # allow TLS 1.2 and later ctx.options |= ssl.OP_NO_SSLv2 ctx.options |= ssl.OP_NO_SSLv3 ctx.options |= ssl.OP_NO_TLSv1 ctx.options |= ssl.OP_NO_TLSv1_1

En cuanto a utilizar un SSLContext personalizado con solicitudes para forzar una versión de protocolo particular, de acuerdo con la documentación no parece haber una manera de hacerlo , consulte el siguiente ejemplo de los documentos .

Estoy atrapado usando Python 2.6 y necesito enviar una solicitud posterior usando TLS 1.2. ¿La biblioteca de requests Python 2.6 es compatible con TLS 1.2? ¿Cómo aseguro / verifico que la solicitud se realiza a través de TLS1.2 y no de otra versión?

Una solicitud de muestra es

r=requests.post(url,data=payload,verify=False)

En algún lugar del foro llegué a saber que necesitamos compilar pyOpenSSL para apoyar esto. hay una manera mas facil?