Назад | Перейти на главную страницу

gnutls-cli зависает при проверке ssl-соединения

Я выполняю команду

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

и выход

|<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:

а потом мигающий курсор, он просто там висит. Используя strace, я вижу, что после выполнения нескольких строк кода он достигает точки, где просто печатает

select (6, [0 5], NULL, NULL, {0, 50000}) = 0 (Тайм-аут)

Снова и снова и снова. Я пробовал обновить gnutls до 3.1.23, но результат тот же. Запуск от имени root не меняет результата.

В качестве проверки работоспособности я также запустил:

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

и он действительно создает успешное ssl-соединение. Кто-нибудь знает, почему gnutls-cli может это делать ... или что я могу сделать, чтобы он этого не делал? Я пытаюсь отладить более серьезную проблему, и я думаю, что это может быть напрямую связано с этим ...

Ubuntu 14.04
gnutls-cli 3.1.23

У вас неправильная командная строка. Вместо того

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

Это должно быть

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

См. Использование:

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

Таким образом, он фактически установил простое соединение и ждал EOF от терминала, и только после этого он начал с квитирования SSL.