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

Проблемы OpenSSL в Debian Wheezy

Я не знаю, что именно происходит, но я заметил, что curl не может получить защищенные страницы без дополнительных переключателей.

~# curl -v https://api.dreamhost.com
* About to connect() to api.dreamhost.com port 443 (#0)
*   Trying 75.119.208.14...
* connected
* Connected to api.dreamhost.com (75.119.208.14) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
(hangs for a minute)
* Unknown SSL protocol error in connection to api.dreamhost.com:443
* Closing connection #0
curl: (35) Unknown SSL protocol error in connection to api.dreamhost.com:443

Теперь, когда я добавляю -1 (принудительно tlsv1) или -3 (принудительно sslv3), curl работает безупречно. Проблема в том, что другие программы, похоже, имеют похожие проблемы, например сценарии Python.

Когда я пробую openssl, он зависает как завиток

openssl s_client  -connect api.dreamhost.com:443
CONNECTED(00000003)
(HANGS)

write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 320 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---

То же самое происходит, если я использую -tls1_2, но он работает, если я использую переключатель -ssl3

Дополнительная информация:

OpenSSL> version
OpenSSL 1.0.1e 11 Feb 2013

Кто-нибудь знает, как это исправить и заставить curl или openssl работать с настройками по умолчанию? У меня есть еще одна машина с Debian lenny, которая может безупречно выполнять обе команды без каких-либо переключателей.

Спасибо!

-Родриго

Если вы запустите этот сайт против SSLLabs тестты увидишь это нетерпимый к долгим рукопожатиям, проблема, которая определенно влияет на вашу версию OpenSSL.

Уменьшение размера списка шифров должно помочь, например:

openssl s_client -cipher RSA -connect api.dreamhost.com:443

(Вы можете использовать --ciphers вариант для curl.)

Поэтому я пошел дальше и подал заявку в Dreamhost (на основе анализа @Bruno выше), потому что у меня была такая же проблема. На это ушло несколько недель, но они все исправили. Любая другая компания, наверное, просто отправила бы меня в ад техподдержки.

Убедитесь, что у вас есть ca-certificates пакет установлен правильно. Если он установлен, возможно, вы случайно удалили его файлы и вам необходимо переустановить его.

sudo apt-get install --reinstall ca-certificates