Я использую Ubuntu 12.04, установленный на VirtualBox (Mac) с использованием vagrant. Я не использую прокси-сервер.
В сети моей компании, когда я пробую
curl -1vsS https://github.com/FGRibreau/doxx/archive/master.zip
, я получаю следующие результаты:
* About to connect() to github.com port 443 (#0)
* Trying 192.30.252.130... connected
* successfully set certificate verify locations:
* CAfile: none
CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* Unknown SSL protocol error in connection to github.com:443
* Closing connection #0
curl: (35) Unknown SSL protocol error in connection to github.com:443
Он застрял при приветствии клиента. То же самое и с другими инструментами, которые я использую, например npm, bower
Но если я сделаю следующее:
wget --secure-protocol=TLSv1 https://github.com/FGRibreau/doxx/archive/master.zip
Я смогу загрузить файл. Основная проблема здесь в том, что у меня проблема с подключением, только если я нахожусь в сети моей компании. Упомянутая проблема никогда не возникала, если я подключался к другой сети. (например, дом, общедоступный доступ в Интернет и т. д.)
Прежде чем я обойду проблему, принудительно установив все соединения с использованием SSLv3, поскольку проблема возникает только в том случае, если клиент / сервер решил использовать TLS.
Я полагаю, что люди начали отключать SSLv3 из-за недавней уязвимости SSL.
Что я могу сделать, чтобы проверить, что не так с моей настройкой, что вызывает проблемы при использовании TLS для HTTPS-соединений?
[Edit] Если я выполните следующую команду:
strace -o ./tmp.out curl -v -sS https://github.com/FGRibreau/doxx/archive/master.zip
Файл tmp.out слишком велик, чтобы вставить его сюда, поэтому последние несколько строк следующие:
write(3, "\26\3\1\0\337\1\0\0\333\3\2T`E\30\3006\315\336\220I\6|\v'!8cp*\206\332"..., 228) = 228
write(2, "*", 1) = 1
write(2, " ", 1) = 1
write(2, "SSLv3, TLS handshake, Client hel"..., 40) = 40
read(3, 0x9cdf3e0, 7) = -1 EAGAIN (Resource temporarily unavailable)
clock_gettime(CLOCK_MONOTONIC, {10742, 580346821}) = 0
clock_gettime(CLOCK_MONOTONIC, {10742, 580375417}) = 0
poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 299700) = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGINT (Interrupt) @ 0 (0) ---
+++ killed by SIGINT +++
Похоже, сервер ожидает ответа, но не получил его и завершил работу с ошибкой .
Проблема решена, похоже, сайты, которые я посещаю, используют Tor, а наш сетевой брандмауэр отключается все, что связано с Tor.
Просто нужно удалить правило брандмауэра, которое блокирует Tor.