SSL v3 Handshake Failure (pero solo en versiones más recientes de OpenSSL)

Este fragmento de código básico en Python 3.5, con un sitio web específico, falla con requests.exceptions.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:720)

 import requests requests.get("https://ssbp.mycampus.ca/prod_uoit/bwskfshd.P_CrseSchdDetl") 

Funciona perfectamente bien en Ubuntu 16.04, pero el mismo script con las mismas versiones de todas sus dependencias de Python falla en Debian Stretch.

He intentado instalar requests[security] y no hace ninguna diferencia. La única diferencia notable entre mis instalaciones es que Debian tiene OpenSSL 1.1.0c 10 Nov 2016 y Ubuntu tiene la versión OpenSSL 1.0.2g 1 Mar 2016 .

De alguna manera, la versión más reciente de OpenSSL debe causar que falle.

La versión de requests utilizada es 2.11.1 .

El servidor solo admite un único cifrado antiguo: DES-CBC3-SHA. Este cifrado se considera débil ( SWEET32 ) y se elimina de la comstackción predeterminada en OpenSSL 1.1.0. Dado que Debian sigue la comstackción predeterminada, el cifrado no está disponible en las versiones más recientes de Debian.

De los cambios entre 1.0.2h y 1.1.0 :

Para mitigar el ataque SWEET32 (CVE-2016-2183), las suites de cifrado 3DES se han desactivado de forma predeterminada y se han eliminado de DEFAULT, al igual que RC4. Vea el artículo RC4 a continuación para volver a habilitar ambos.

Los conjuntos de cifrado libssl basados ​​en RC4 ahora se clasifican como cifrados “débiles” y están deshabilitados de forma predeterminada. Se pueden volver a habilitar usando la opción enable-weak-ssl-ciphers para Configurar.