¿Por qué wget no verifica los certificados SSL?

19

Tengo un problema con mi instalación de Fedora 8 . Parece que wgetya no sabe cómo verificar los certificados SSL. ¡Es extraño porque tengo otra caja Fedora 8 que creo que tiene la misma configuración y funciona!

¿Cómo puedo hacer que funcione sin usar el --no-check-certificateinterruptor?

Esta es una salida de muestra:

wget https://www.google.com
--2011-09-23 00:11:13--  https://www.google.com/
Resolving www.google.com... 74.125.230.146, 74.125.230.147, 74.125.230.148, ...
Connecting to www.google.com|74.125.230.146|:443... connected.
ERROR: cannot verify www.google.com's certificate, issued by `/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA':
  Unable to locally verify the issuer's authority.
To connect to www.google.com insecurely, use `--no-check-certificate'.
Unable to establish SSL connection.

EDITAR

Tengo este archivo /etc/pki/tls/certs/ca-bundle.crty cuando lo ejecuto wgetcon el --ca-certificateinterruptor apuntando a este archivo todo sale bien. ¿Dónde se debe colocar este archivo para que no necesite usar el interruptor?

Por cierto: curly linksfunciona bien, pero lynxtambién se queja: "Error de SSL: no se puede obtener el certificado de emisor local", por lo que este no es solo wgetun problema ...

tomazy
fuente
44
¿Por qué incluso tienes una instalación de Fedora 8?
Ignacio Vazquez-Abrams
1
Fedora 9, 10, 11, 12 y 13 ya ni siquiera son compatibles.
ceejayoz
Soy consciente de que este es un sistema operativo antiguo que ya no es compatible, pero espero que sea solo un tipo de problema de configuración que alguien con experiencia pueda resolver fácilmente para que no necesite actualizar todo el sistema.
tomazy
¿Cuál es la versión de wget que estás usando?
SparX
GNU Wget 1.11.1 (Red Hat modificado)
tomazy

Respuestas:

11

De forma predeterminada, wget buscará certificados en la ruta definida en el archivo conf de openssl /etc/pki/tls/openssl.cnf (no estoy seguro de si la ruta es correcta para fc8). Compruebe el archivo de configuración de openssl y confirme que las rutas son correctas. Puede ser que es openssl, que necesita ser corregido.

SparX
fuente
Se trataba de un problema con openssl: faltaba el archivo cert.pem en / etc / pki / tls. Gracias
tomazy
5

Su sistema no confía en la cadena de firmas para el certificado de Google.

Tampoco presentan la cadena de certificados completa, solo el certificado de su emisor; no 100% a la par, pero ciertamente nada que le impida validar la cadena.

Es probable que su sistema antiguo tenga un conjunto igualmente antiguo de autoridades de certificación raíz de confianza.

Confíe en el certificado VeriSign correcto ( aquí ), y debería ser bueno.

Shane Madden
fuente
¿Cómo "confío" exactamente en el certificado VeriSign?
tomazy
Probablemente necesita ser puesto /etc/ssl/certs.
Shane Madden
Este directorio no existía pero lo creé y copié los archivos cert - no ayudó :(
tomazy
No estoy seguro de dónde se encuentra el directorio de certificados en ese sistema operativo, entonces. grep¡alrededor!
Shane Madden
4

Debe recopilar una lista de los certificados raíz en los que desea confiar y decir wgetcómo encontrarlos utilizando la opción --ca-certificateo --ca-directory. Es posible que ya tenga uno /etc/pki/tls/certssi tiene instalado el paquete apropiado.

David Schwartz
fuente
3

Tuve problemas con wget al no encontrar mis certificados, así que instalé los certificados ca

sudo apt install ca-certificates

luego edité:

sudo vi /etc/wgetrc

y agregado

ca_directory=/etc/ssl/certs

o simplemente puede usar este comando para agregarlo al final:

printf "\nca_directory=/etc/ssl/certs" | sudo tee -a /etc/wgetrc
Jared
fuente
alternativamente, funcionó para mí si lo usaba, wget https://myurl --ca-directory=/etc/ssl/certs/pero no quiero tener que escribir eso cada vez, no hay nadie que tenga tiempo para eso ;-)
Jared