Estoy tratando de curlizar el sitio web HTTPS de la siguiente manera:
$ curl -v https://thepiratebay.se/
Sin embargo, falla con el error:
* About to connect() to thepiratebay.se port 443 (#0)
* Trying 173.245.61.146...
* connected
* Connected to thepiratebay.se (173.245.61.146) port 443 (#0)
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS alert, Server hello (2):
* error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
* Closing connection #0
curl: (35) error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
Usar -k
/ --insecure
o agregar insecure
a mi ~/.curlrc
no hace ninguna diferencia.
¿Cómo ignoro o fuerzo el certificado usando la curl
línea de comando?
Cuando se usa wget
parece funcionar bien. También funciona cuando se prueba con openssl
lo siguiente:
$ openssl s_client -connect thepiratebay.se:443
CONNECTED(00000003)
SSL handshake has read 2651 bytes and written 456 bytes
New, TLSv1/SSLv3, Cipher is AES128-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : AES128-SHA
He:
$ curl --version
curl 7.28.1 (x86_64-apple-darwin10.8.0) libcurl/7.28.1 OpenSSL/0.9.8| zlib/1.2.5 libidn/1.17
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz
fuente
Comenzando con Mavericks, Apple cambió el motor TLS / SSL de OpenSSL a su propio motor de transporte seguro en binario cURL distribuido por Apple que interrumpe el uso del certificado del cliente. Utilice el binario cURL de homebrew:
fuente
brew link curl --force
ya no funciona, debes ponerexport "$(brew --prefix curl)/bin:$PATH"
tu .bash_profile en su lugar.Tuve este error cuando estaba enviando un encabezado de host incorrecto.
Estaba desarrollando un proxy de http://127.0.0.1:12345 a https://site.com:443 . así que estaba enviando encabezados de solicitud tal como estaban desde el navegador y había host: 127.0.0.1: encabezado 12345. Eliminé el encabezado del host que vino del navegador para resolver el problema.
fuente