Re: Не применятеся список разрешённых протоколов SSL.
Gena Makhomed
gmm на csdoc.com
Вт Сен 1 17:17:45 UTC 2015
On 01.09.2015 17:08, ekassir wrote:
> Нужна была доступность протокола TLS 1.0, который используется приложениями,
> совместимость с которыми нужно было обеспечить.
> В итоге, пришлось для всего списка сайтой прописать TLS 1.0,
> чтобы он начал поддерживаться на нужном hostname.
> Кто знает, это бага или фича? Как обойти?
Директива ssl_protocols, хоть и указывается в контексте server`а,
на самом деле является свойством listen socket`а, а не server`а.
Потому что клиент сначала устанавливает TLS соединение с сервером,
а только после этого присылает HTTP-запрос в котором указано имя хоста.
Обойти можно просто, сделав различные listen socket`ы
с разными настройками, так чтобы они отличались
или номером порта или IP адресом. Например:
server {
listen 11.11.11.11:443 ssl;
ssl_protocols SSLv3;
}
server {
listen 22.22.22.22:443 ssl;
ssl_protocols TLSv1.1 TLSv1.2;
}
Есть необязательное расширение TLS протокола - Server Name Indication
https://tools.ietf.org/html/rfc6066#section-3
Но нюанс в том, что server_name там присылается
в не-защищенном виде как ClientHello extension,
И это имя ведь может не совпадать с имемен хоста,
который потом будет прислан по зашифрованному HTTP-протоколу.
https://idea.popcount.org/2012-06-16-dissecting-ssl-handshake/
Кроме того, Server Name Indication extension может и не быть.
> Есть идеи, как дебажить?
http://nginx.org/en/docs/debugging_log.html
--
Best regards,
Gena
Подробная информация о списке рассылки nginx-ru