Назад | Перейти на главную страницу

Явная несогласованность в Apache SSLProtocol

Я использую сервер с Debian 10 и версией Apache: 2.4.38-3 + deb10u3. Вызывает недоумение поведение различных настроек SSLProtocol. SSL был настроен как достаточно безопасный. Этот параметр работает для каждого клиента (по крайней мере, нет свидетельств этого):

    SSLProtocol -all +TLSv1.2 +TLSv1.3

Из руководства трудно сказать, как именно можно комбинировать параметры, но следующее выглядит на первый взгляд одинаковым и цитируется в различных публикациях как предлагаемая конфигурация:

    SSLProtocol TLSv1.2 TLSv1.3

или

    SSLProtocol "TLSv1.2,TLSv1.3"

Они также работают для доступа к сайту с помощью браузера. Однако проверка сайта Alertra показывает, что сайт не прошел. В диагностике говорится:

    Result  Error (Connection to HTTPS service failed)
    Server Response     0 Unrecognized HTTP error

Доступ через веб-прокси также не работает, поэтому проблема не только в Alertra.

Чем отличается поведение Apache в этих альтернативных спецификациях SSLProtocol и почему?

Дальнейшие эксперименты дали ответ. Конфигурация:

    SSLProtocol TLSv1.2 TLSv1.3

в Apache 2.4 означает поддержку только TLSv1.3. Кажется, что если цитируется более одного протокола, вступает в силу только последний. Следовательно, эта спецификация вызывает сбой любого клиента, который не может использовать TLSv1.3. Если необходимо использовать более одного протокола, то перед всеми, кроме первого, должен стоять знак +. Следовательно, это работает для обеспечения TLSv1.2 и TLSv1.3:

    SSLProtocol TLSv1.2 +TLSv1.3

и кажется наиболее ясным способом точно указать, что поддерживается. Похоже, тот же результат достигается с помощью:

    SSLProtocol -all +TLSv1.2 +TLSv1.3

но это менее понятно.

Жаль, что Apache не помечает первую конфигурацию выше как ошибку, поскольку она содержит элемент, который просто игнорируется и, таким образом, может запутать пользователя (как это сделал я!). Также было бы полезно, если бы в документации Apache было разъяснено, как различные параметры работают вместе.