Red de conocimiento informático - Aprendizaje de código fuente - De SSLEOFError a configuración correcta

De SSLEOFError a configuración correcta

Este artículo es una reescritura del registro de problemas ProxyError de Python

Después de arreglar la autenticación SSL de pip hace unos días, encontré un SSLError ( SSLEOFError(8, 'EOF ocurrió en violación del protocolo (_ssl.c:1129')))

Después de una serie de consultas relacionadas con SSL, encontré el error. c:1129)'))

Después de una serie de consultas y pruebas, el motivo es que la propia biblioteca urllib de Python no configura correctamente el proxy HTTPS

El proxy HTTP(S) mencionado anteriormente Es un servidor proxy que reenvía tráfico HTTP (S) a través del servidor proxy. En este artículo se llamará protocolo de salida.

La comunicación con el servidor proxy requiere un protocolo, que está representado por. la línea verde en la figura anterior. Este artículo se llamará protocolo de ingreso

Los protocolos de ingreso suelen ser protocolos HTTP y SIP, pero los más utilizados son HTTP y SIP. HTTP y Socks4/Socks5 son los protocolos más utilizados, mientras que HTTPS rara vez se utiliza como protocolo de conexión con servidores proxy, lo que también es el principal motivo de errores anteriores

Por lo tanto, no hay diferencia entre el ingreso protocolo y el protocolo de salida Hay una conexión causal.

Su protocolo de importación admite ProxyServer en el directorio de configuración, que se usa para configurar la dirección y el puerto del servidor proxy, y si se debe usar ProxyEnable para habilitar el proxy

Cuando se configura CFW el servidor proxy, solo se proporcionan la dirección y el puerto, pero no se proporciona el protocolo de importación

De acuerdo con la lógica fuente de la biblioteca urllib proporcionada anteriormente

Esto conduce a una serie de errores en paquetes de software de capa superior (como pip y request) El proxy https://127.0.0.1:7890 se usó incorrectamente y CFW no admite el protocolo de ingreso HTTPS en absoluto

Le recomiendo que use https://127.0 según el protocolo de entrada admitido por la herramienta que está utilizando el proxy 0.1:7890. Le recomiendo que modifique la lógica fuente de la biblioteca urllib de acuerdo con el protocolo de importación admitido por su herramienta favorita (el archivo generalmente se encuentra en ***/python3.*/urllib/request.py o ***/anaconda3/Lib/urllib /request.py )

O simplemente siga estas instrucciones (que pueden no aplicarse en todos los casos)

O simplemente siga estas instrucciones (que pueden no aplicarse en todos los casos).