Оптимизация Apache. Сжимаем данные и подключаем http2

Оптимизация Apache крайне важна для успешного позиционирования сайта поисковыми системами. Например, Google говорит, что сайт должен быть быстрым, безопасным и весьма желательно, чтобы он поддерживал новый протокол http2. В нескольких следующих статьях рассмотрим, как это сделать. Описаны различные способы оптимизации и даны пошаговые инструкции с пояснениями.

1. Оптимизация Apache. Делаем сайт безопасным.

Безопасной считается передача данных в зашифрованном виде, отсутствие среди алгоритмов шифрования слабых или подлежащих взлому и использование только безопасных протоколов передачи данных. Рассмотрим, как это сделать.

У нас должен быть установленный http сервер Apache, весьма желательно 2.4, обязательно с модулем mod_ssl, который обеспечивает шифрование передаваемых данных. Кроме того, должен быть установлен сертификат сервера (сайта), которому браузеры пользователя будут доверять. То есть, не самоподписанный. Что такое цифровой сертификат см. “Цифровые сертификаты. Определения и пояснения“, “Как создать службу сертификатов. Подготовка” и “Как создать службу сертификатов. Пошаговая инструкция“.

Необходимо знать, где находятся директивы настройки mod_ssl. Обычно это файл /etc/httpd/conf.d/ssl.conf. Или они могут быть включены в основной конфигурационный файл Apache /etc/httpd/conf/httpd.conf.

Оптимизация Apache начинается с безопасности данных. Есть несколько сервисов в интернете, которые могут протестировать сайт с точки зрения безопасности и показать проблемы с его настройкой. Я пользуюсь последнее время Qualys SSL labs. Вводим в соответствующее поле URL сайта и ждем несколько минут результата. Отчет состоит из нескольких частей. Нас интересуют все обнаруженные недостатки и проблемы.

Оптимизация Apache. Рис. 1. Протоколы

Рис. 1. Протоколы

В разделе протоколов отчета (Рис. 1.) видим, что наш сайт может использовать протокол SSL v3, который считается небезопасным. Его использование надо запретить. Для этого необходимо отредактировать конфигурационные директивы модуля mod_ssl, который отвечает за безопасность передачи данных и шифрование.

Оптимизация Apache. Рис. 2. Доступные алгоритмы шифрования.

Рис. 2. Доступные алгоритмы шифрования

Кроме того, могут использоваться несколько алгоритмов шифрования, которые считаются небезопасными (рис. 2.) Необходимо запретить их использование. Более того, поскольку мы планируем использовать протокол http2, для него имеется его собственный “черный список алгоритмов шифрования“. Его мы учтем то же.

Оптимизация Apache. Редактируем настройки mod_ssl

В результате проведенных манипуляций http сервер Apache будет использовать только протоколы и алгоритмы шифрования, которые считаются безопасными. Изменения необходимо внести в основной конфигурационный файл mod_ssl (обычно  /etc/httpd/conf.d/ssl.conf или /chroot/httpd/etc/httpd/conf.d/ssl.conf) и во все конфигурационные файлы виртуальных серверов (https://), если такие есть.

Находим во всех файлах директивы  SSLProtocol и SSLCipherSuite. После редактирования они должны выглядеть следующим образом:

SSLProtocol All -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK

Вторая строчка достаточно длинная.

Как только внесли все изменения, перезапускаем Apache и проверяем полученный результат на Qualys SSL labs.

Оптимизация Apache. Рис. 3. Результат правильной настройки mod_ssl

Рис. 3. Результат правильной настройки mod_ssl

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

Оптимизация Apache. Рис. 4. Доступные протоколы и алгоритмы шифрования.

Рис. 4. Доступные протоколы и алгоритмы шифрования

Цена произведенных улучшений – с сайтом не смогут работать несколько ну очень старых броузеров, которые не поддерживают протокол tls совсем. Список таких браузеров можно увидеть в соответствующем разделе отчета.  Я не думаю, что будет потеряно ну очень большое число клиентов. Оцените сами.

При увеличение длины ключей, оценки еще возрастут. При этом и возрастет нагрузка на сервер, особенно с учетом того, что мы собираемся передавать ВСЕ данные в зашифрованном виде. Соответственно может увеличится время загрузки страниц. Также можно оставить только протокол TLS v 1.2. Оценка то же возрастет. Но при этом доступ к сайту будет ограничен только посетителями с новейшими браузерами и значительная часть клиентов будет потеряна. Поэтому тот результат, которой получен сочтем достаточно хорошим компромиссом и на этом остановимся.

Описана оптимизация Apache и улучшение безопасности за счет запрета ряда устаревших протоколов и алгоритмов шифрования.

,

No comments yet.

Leave a Reply