Недавно я переустановил свой сервер на Ubuntu 20.04.
Мне позвонили в службу поддержки, и через несколько дней мне удалось заметить, что TLS v1.0 и v1.1 не предоставляются моим веб-сервером nginx
. Конфигурация была прекрасной и явно включает TLSv1 и TLSv1.1. Ничего не появилось в журналах nginx…
Позже я замечаю, что больше ничего не работает с TLS 1.0 или 1.1.
openssl s_client -tls1 -connect matrix.org:443
не работает (не работает с , нет доступных протоколов
), тогда как это работает в Ubuntu 18.04.
Кто-то еще из , ответ на этот вопрос больше не может подключиться к своему серверу MySQL, который не поддерживает TLS v1.2.
Я начинаю подозревать, что это может быть намеренное изменение Ubuntu, но я ничего не могу найти в примечаниях к выпуску, а также не могу найти, как повторно включить TLS v1.0 и v1.1 так как он мне действительно нужен для поддержки устройств некоторых старых пользователей (в основном телефонов Android).
Как можно повторно включить TLS v1.0 и / или v1.1?
Большое спасибо.
Я попытался изменить /etc/ssl/openssl.cnf
(на который имеется символическая ссылка /usr/lib/ssl/openssl.cnf
), чтобы добавить
openssl_conf = default_conf
[ default_conf ]
ssl_conf = ssl_sect
[ ssl_sect ]
system_default = system_default_sect
[ system_default_sect ]
MinProtocol = TLSv1
DEFAULT@SECLEVEL = 1
. не приведет к какой-либо разнице при использовании команды openssl
, показанной ранее (я пробовал как «TLSv1», так и «TLSv1.0» в качестве MinProtocol).
Наконец-то я узнал, как включить nginx (боюсь, я не знаю, как это сделать для всей системы) и другие службы с конфигурацией, позволяющей менять шифры.
Источник: man ciphers.1ssl
Отредактируйте конфигурацию nginx и добавьте в список шифров псевдошифр @SECLEVEL=1
.
Пример:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
становится
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
# seclevel for TLS 1.0 and 1.1
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:@SECLEVEL=1";