Я знаю, ты думаешь, что это повторяющийся вопрос, но сначала выслушай меня. Я не могу найти ответ в системе с той же конфигурацией, что и min, поэтому вот мой сервер conf:
Red Hat 4.1.2-44
CentOS выпуск 5
OpenSSL 1.0.2a
Версия сервера: Apache / 2.2.3
У меня возникла проблема с протоколом, когда я установил новый сертификат SSL. Я обнаружил, что у меня включен TLSv1. Затем я просмотрел статью (ссылка: https://www.leaderssl.com/news/471-how-to-disable-outdated-versions-of-ssl-tls-in-apache), чтобы попытаться отключить TLSv1. Я пробовал несколько возможных решений, но получаю либо Illegal protocol 'TLSv1.1' in linux
ошибка или No SSL protocols available [hint: SSLProtocol]
я получил Illegal protocol 'TLSv1.1' when restart command (service httpd restart) fails after I change SSL protocol to
SSLProtocol все -SSLv2 -SSLv3 -TLSv1 -TLSv1.1`)
и когда я применяю протокол SSL: SSLProtocol all -SSLv2 -SSLv3
, сервер успешно перезагружается, но в журнале ошибок httpd появляется сообщение об ошибке No SSL protocols available [hint: SSLProtocol]
Срок службы CentOS 5 истек на несколько лет (март 2017 г.), и он никогда не будет поддерживать TLS 1.1 или выше, даже если вы попытаетесь заменить критически важные системные библиотеки, как кто-то, похоже, уже сделал с этой системой.
Эту систему следовало модернизировать несколько лет назад. Его больше нельзя откладывать. Если вам нужна поддержка TLS 1.1 и выше, вам необходимо выполнить обновление до поддерживаемой в настоящее время версии CentOS (7 или 8, предпочтительно 8).
ВНИМАНИЕ: УЖАСНЫЙ ХАК-ПОДХОД
Я очень удивлен, что у вас есть OpenSSL 1.0.2a. Одна тестовая виртуальная машина, которую я заархивировал с помощью CentOS 5.6, имеет 1.0.1e, а rpmfind показывает то же самое для 6.10, поэтому я не ожидал, что у любой 5 будет больше. Тем не мение, обе 1.0.1 и 1.0.2 реализуют (ed) TLSv1.1 и TLSv1.2; это ваша старая версия Apache, которая не знает, как настроить их в OpenSSL. Так:
уточнить SSLProtocols all -SSLv3 -TLSv1
удостовериться SSLCiphers
отключает все шифрокомплекты SSLv2. В /etc/ssl/conf.d/ssl.conf
в моем mod_ssl
пакет 2.2.15 (выше вашего, если он синхронизирован с остальной частью Apache), уже имеет !SSLv2
среди нескольких "удалений", но если у вас этого не было, или он был удален / изменен / заменен в вашей конфигурации, добавьте его
В результате такой комбинации Apache думает включен протокол, а именно SSLv2, но поскольку наборы шифров для SSLv2 не пересекаются с наборами шифров для более высоких протоколов, настройка набора шифров предотвращает фактическое успешное квитирование SSLv2, таким образом обрабатывая безумно глупых клиентов или (что более важно) сканеров и аудиторов безопасности. SSLv3 и TLSv1.0 отключены, как указано, а TLSv1.1 и TLSv1.2 (оба) остаются включенными, поскольку ваш Apache не отключил (и не смог) их. Работает при тестировании на копии моей вышеупомянутой архивной ВМ.
Не используй SSLProtocols SSLv2
как «сокращение». Я не уверен, но это может привести к тому, что mod_ssl будет использовать конкретный метод SSLv2 (то есть функцию), а не общий метод (ошибочно названный SSLv23 в этих версиях OpenSSL; в 1.1.x он был окончательно исправлен для метода TLS_ *) с флагами option. Последнее вам абсолютно необходимо.
Тем не менее, я согласен с Майклом: замените эту систему как можно скорее.