No puedo obtener wget para usar los certificados de cliente. La documentación habla sobre el uso de la bandera --certificate.
El uso del indicador de certificado es claro, lo configuré para usar la versión PEM del certificado del cliente.
Pero cuando me conecto me sale el siguiente error:
HTTP request sent, awaiting response... Read error (error:14094410:SSL routines:
SSL3_READ_BYTES:sslv3 alert handshake failure; error:140940E5:SSL routines:SSL3_
READ_BYTES:ssl handshake failure) in headers.
Giving up.
La falla de protocolo de enlace SSL significa que el cliente no proporcionó un certificado de cliente correcto. Aún así, el certificado de cliente que uso funciona en un navegador.
Nota: Cuando desactivo la autenticación del cliente en el servidor, wget puede conectarse. Nota: Se sugiere el uso de curl, pero me gustaría evitar el cambio.
ssl-certificate
wget
Bart De Vos
fuente
fuente
Respuestas:
Estudié una semana sobre esto, finalmente con la ayuda que obtuve de esta página.
El comando que solía conectar es:
fuente
¿Está seguro de que la autenticación de certificado de cliente SSL funciona en su servidor?
Acabo de probar que puedo tomar mi certificado (en formato PKCS12), convertirlo en un archivo de certificado y clave en formato PEM y usarlo con wget perfectamente.
Puedo provocar tres condiciones de error, ninguna de las cuales coincide con lo que informa:
Estoy usando nginx; no mencionas lo que estás usando, así que no estoy seguro si Apache devolverá las mismas respuestas.
Sugeriría tomar su certificado y clave, combinarlo en PKCS12 (o simplemente importarlo como PEM si su navegador admite el formato) y asegurarse de que todo funcione en ese frente primero.
Si ya lo ha hecho, tal vez pueda intentarlo desde otra máquina para asegurarse de que no sea algo extraño con la versión de OpenSSL que está utilizando.
Por último, intente usar OpenSSL en modo s_client:
Y ver si las cosas funcionan a ese nivel. Si es así, entonces hay algo raro con wget y es posible que desee volver a compilarlo o reinstalarlo. De lo contrario, el nivel de salida de depuración puede ayudarlo a identificar el problema más de lo que lo haría la salida de depuración de wget.
fuente
He utilizado con éxito wget como este:
Tenga en cuenta el
--private-key option
. retiene.url tiene https: //bla.bla.blaSin embargo, ahora me indica "Ingrese la frase de paso PEM:".
Si ingreso la contraseña, funciona bien, pero ¿alguien sabe cómo evitar el aviso?
fuente
¿Es posible que wget se conecte al puerto 80? Ese error es muy similar a los errores que recibo en las pruebas cuando accidentalmente tuve que escuchar HTTP 80 y 443-wget intentaba hablar SSL y no obtenía la respuesta que quería.
fuente
Obtenga una captura de red y cárguela en Wireshark. Esto debería darle una imagen más clara de lo que está fallando a nivel SSL / TLS.
fuente
Ha habido problemas con SSLv3 en versiones como 0.9.8.
Intente pasar -no_ticket a openssl s_client o si -ssl2 funciona
fuente