gnutls-cli trava ao testar uma conexão ssl

1

Estou executando o comando

gnutls-cli -s facebook.com -p 443 --x509cafile /etc/ssl/certs/ca-certificates.crt -d 999

e a saída é

|<2>| p11: loaded provider 'p11-kit-trust'
|<2>| p11: loaded provider 'gnome-keyring'
|<2>| ASSERT: pkcs11.c:425
Processed 164 CA certificate(s).
Resolving 'facebook.com'...
Connecting to '173.252.120.6:443'...
|<4>| REC[0x872bac8]: Allocating epoch #0

- Simple Client Mode:

e depois um cursor piscando, ele simplesmente fica pendurado. Usando strace, vejo que depois que várias linhas de código são executadas, ele atinge um ponto em que apenas imprime

select(6, [0 5], NULL, NULL, {0, 50000}) = 0 (Timeout)

Mais e mais e outra vez. Eu tentei atualizar gnutls para 3.1.23, mas o resultado é o mesmo. Executá-lo como root não altera o resultado.

Como teste de sanidade, também corri:

openssl s_client -connect facebook.com:443 -CAfile /etc/ssl/certs/ca-certificates.crt

e cria uma conexão ssl bem-sucedida. Alguém sabe por que o gnutls-cli pode estar fazendo isso ... ou o que eu posso fazer para não fazer isso? Estou tentando depurar um problema maior e acho que isso pode estar diretamente relacionado a isso ...

Ubuntu 14.04
gnutls-cli 3.1.23
    
por JTG 08.01.2015 / 22:59

1 resposta

2

Sua linha de comando está errada. Em vez de

 gnutls-cli -s facebook.com -p 443 --x509cafile /etc/ssl/certs/ca-certificates.crt -d 999

deve ser

 gnutls-cli -p 443 --x509cafile /etc/ssl/certs/ca-certificates.crt -d 999 facebook.com

Veja o uso:

Usage:  gnutls-cli [options] hostname
...
 -s, --starttls           Connect, establish a plain session and 
                          start TLS when EOF or a SIGALRM is 
                          received.

Então, na verdade, estabeleceu uma conexão simples e esperou pelo EOF do terminal e somente depois disso ele iniciaria com o handshake SSL.

    
por 08.01.2015 / 23:33

Tags