ssl_protocols

Gena Makhomed gmm на csdoc.com
Пн Янв 4 16:03:44 UTC 2021


On 06.07.2020 22:17, Maxim Dounin wrote:

>> On 29.06.2020 17:07, Maxim Dounin wrote:
>>
>>> Соответственно для включения TLSv1.3 по умолчанию надо решить две
>>> проблемы:
>>>
>>> 1. Сделать решение, которое бы позволило реализовать ту же
>>> семантику "отазаться общаться, не предъявляя сертификата" в
>>> условиях наличия TLSv1.3.
>>>
>>> 2. Придумать решение для существующих конфигураций с "ssl_ciphers
>>> aNULL; return 444;".
>>
>> Эти две проблемы выглядят как в принципе не решаемые
>> в условиях наличия включенного протокола TLSv1.3.
> 
> Как минимум первая из этих проблем легко решается возвратом ошибки
> из ngx_http_ssl_servername().  Основной вопрос - что делать со
> второй.  И вот тут не совсем понятно, существует ли хорошее
> решение, внешнее по отношению к SSL-библиотеке.

Первая проблема теперь уже полностью решена,
с появлением директивы ssl_reject_handshake
http://hg.nginx.org/nginx/rev/59e1c73fe02b

Для существующих конфигураций с "ssl_ciphers aNULL;" можно выдавать
deprecation warning во время проверки конфига и предлагать поменять
этот хак с "ssl_ciphers aNULL;" на директиву ssl_reject_handshake.

>>>>> в TLSv1.3 не настраиваются шифры

Кстати, да. Что-то директива ssl_conf_command
http://hg.nginx.org/nginx/rev/3bff3f397c05
не работает таким образом, как ожидалось.

В файле nginx.conf прописано:

ssl_conf_command Ciphersuites 
TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384;

При этом сайт ssllabs.com показывает,
что включенным остается также и шифр TLS_AES_128_CCM_SHA256

Операционная система CentOS 8,
в файле /etc/crypto-policies/back-ends/opensslcnf.config
есть такая строчка:

Ciphersuites = 
TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_SHA256

То есть, получается, что не смотря на то, что указано в директиве
ssl_conf_command - настройки из файла 
/etc/crypto-policies/back-ends/opensslcnf.config
имеют более высокий приоритет и перекрывают настройки
из директивы ssl_conf_command - это так и должно быть?

Или можно каким-то образом настройки из файла
/etc/crypto-policies/back-ends/opensslcnf.config
обойти и сделать так, чтобы nginx мог выключить шифр
TLS_AES_128_CCM_SHA256 не редактируя opensslcnf.config?

-- 
Best regards,
  Gena



Подробная информация о списке рассылки nginx-ru