Mudança de versão do Debian afetando scripts usando curl e HTTPS

Mudança de versão do Debian afetando scripts usando curl e HTTPS

Recentemente comecei a usar o Debian 9 (9.4, do Debian 8.x) e um script envolvendo curl parou de funcionar. Eu me conecto à Internet através de um proxy squid no localhost conectado a um proxy pai.

Minhas variáveis ​​de ambiente estão configuradas assim

root@server:~# printenv | grep -i proxy
HTTP_PROXY=http://127.0.0.1:3128
FTP_PROXY=http://127.0.0.1:3128
https_proxy=https://127.0.0.1:3128
http_proxy=http://127.0.0.1:3128
HTTPS_PROXY=https://127.0.0.1:3128
ftp_proxy=http://127.0.0.1:3128

Quando eu uso o wget, funciona:

root@server:~# wget https://www.google.com.cu
--2018-03-14 09:08:53--  https://www.google.com.cu/
Connecting to 127.0.0.1:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’

index.html                  [ <=>                          ]  11.12K  --.-KB/s    in 0.001s

2018-03-14 09:08:54 (14.9 MB/s) - ‘index.html’ saved [11389]

quando eu uso curl, é isso que eu ganho

root@server:~# curl -v https://www.google.com.cu
* Rebuilt URL to: https://www.google.com.cu/
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to (nil) (127.0.0.1) port 3128 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection:     ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
* Curl_http_done: called premature == 0
* Closing connection 0
curl: (35) error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

Eu sei que esses dois comandos não são equivalentes, isso é apenas para ilustrar o problema de transferência HTTPS.

Preciso usar curl porque o script usa uma API da web, portanto, ele precisa usar POST em vez da solicitação GET e definir alguns cabeçalhos e dados para a solicitação POST. (api.dropboxapi.com é o site de destino)

Tudo isso costumava funcionar no Debian 8 sem problemas e, além do wget FUNCIONAR, apenas o curl está falhando com a mudança da versão do debian. Todos os outros clientes HTTPS parecem não ser afetados (FF, Chrome, Edge, wget parecem funcionar como sempre)

Alguém sabe sobre esse problema? Existe alguma solução alternativa, correção, alteração de opção de linha de comando ou qualquer outra coisa para fazer a versão curl do debian 9 funcionar?

Saída de "curl -V"

root@server:~# curl -V
curl 7.52.1 (x86_64-pc-linux-gnu) libcurl/7.52.1 OpenSSL/1.0.2l zlib/1.2.8 libidn2/0.16 libpsl/0.17.0 (+libidn2/0.16) libssh2/1.7.0 nghttp2/1.18.1 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL

Responder1

Muito, muito obrigado a Michael Hampton (ver comentários). Acontece que o problema estava na configuração do proxy. Deveria dizer

https_proxy=http://127.0.0.1:3128
HTTPS_PROXY=http://127.0.0.1:3128

Então o curl estava tentando se conectar ao squid usando TLS e falhando, é claro.

informação relacionada