Ответ 1
Чтобы иметь возможность использовать SNI, требуются три условия:
- Используя версию Curl, которая поддерживает ее, как минимум 7.18.1, в соответствии с измените журналы.
- Использование версии Curl, скомпилированной против библиотеки, которая поддерживает SNI, например. OpenSSL 0.9.8j (в зависимости от параметров компиляции некоторых старых версий).
- Использование TLS 1.0 по крайней мере (не SSLv3).
Обратите внимание, что код отладки Curl (-v
) отображает только номер главной версии (в основном для различения сообщений SSLv2 и SSLv3 +, см. ssl_tls_trace
), поэтому при использовании TLS 1.0 или выше будет отображаться "SSLv3" (поскольку они эффективно SSL v3.1 или выше, 3 - это тот же самый номер версии).
Вы можете проверить, что ваша установленная версия curl может использовать SNI с помощью Wireshark. Если вы создаете соединение с помощью curl -1 https://something
, если вы раскрываете сообщение "Клиент Hello", вы должны иметь возможность расширения "server_name
".
Я не уверен, какая версия SSL/TLS используется по умолчанию (в зависимости от ваших параметров компиляции) при использовании curl
без -1
(для TLS 1.0) или -3
(для SSLv3), но вы может попытаться заставить -1
по вашей команде, так как в любом случае он не будет работать с SSLv3.