Wget y Python Requests no validan los certificados SSL, pero los navegadores no muestran ninguna advertencia

7

Traté de obtener un sitio web, que regresó diciendo:

  

ERROR: el certificado de ‘website.com’ no es de confianza.   ERROR: el certificado de ‘website.com’ no tiene un emisor conocido.

desde una máquina, y desde otra

  

ERROR: no se puede verificar el certificado de website.com, emitido por 'CN = Validación de la organización de GlobalSign CA - SHA256 - G2, O = GlobalSign nv-sa, C = BE':     No se puede verificar localmente la autoridad del emisor.   Para conectarse de manera insegura a website.com, use '--no-check-certificate'.

Como verificación adicional, utilicé la biblioteca de solicitudes de Python para ver lo que diría:

  

requests.exceptions.SSLError: ("handshake bad: Error ([('' SSL rutines ',' tls_process_server_certificate ',' certificado de verificación fallido ')],)",)

Sin embargo, cuando el sitio web se cargó en Firefox y Chrome, ninguno de los dos tenía problemas con el certificado del sitio web. ¿No deberían también advertirme sobre cualquier problema con el certificado SSL de los sitios?

    
pregunta George Broughton 21.03.2018 - 08:46
fuente

2 respuestas

13

No está completamente claro cuál es su problema exactamente ya que no hay información suficiente para reproducirlo. Pero, suponiendo que está utilizando una versión reciente de wget y solicitudes con soporte para SNI, me imagino que es

  • El certificado de servidores lo emite una CA en la que confía el navegador pero no el almacén de CA de su sistema. Chrome y Firefox utilizan una CA diferente de wget o solicitudes. Esto puede suceder, por ejemplo, si el certificado de servidor (tal como lo recibió el cliente) fue emitido por una CA no pública, que suele ser el caso al acceder a sitios de intranet o si hay un servidor de seguridad empleado con intercepción SSL. Especialmente en sistemas Windows, también puede suceder que el almacén de certificados para wget y las solicitudes esté simplemente vacío, ya que el almacén de CA de los sistemas no es compatible con OpenSSL.
  • O el sitio está mal configurado y el servidor no envía un certificado intermedio necesario. Los navegadores de escritorio a menudo solucionan este problema, otros programas no. Consulte este sitio en SSLLabs y busque los problemas de la cadena.
respondido por el Steffen Ullrich 21.03.2018 - 09:12
fuente
0

¿Puedes intentar instalar certifi y luego usar requests ? Usará los mismos certificados raíz que Mozilla, por lo que debería ver el mismo comportamiento que su navegador.

    
respondido por el user 21.03.2018 - 15:12
fuente

Lea otras preguntas en las etiquetas