Пример настройки TLS 1.3 и mod_pagespeed на nginx

Проведём настройку nginx для включения TLS 1.3 и использования модуля mod_pagespeed. Для начала установим зависимости:

yum install gcc-c++ pcre-devel zlib-devel GeoIP-devel make unzip git

Переходим в директорию:

cd /usr/local/src

Клонируем репозиторий OpenSSL, в нашем случае этом будет версия 1.1.1g:

git clone https://github.com/openssl/openssl.git && cd openssl && git checkout e2e09d9fba1187f8d6aafaa34d4172f56f1ffb72

Скачиваем nginx и извлекаем файлы из архива:

curl -L --progress http://nginx.org/download/nginx-1.19.0.tar.gz | tar xz

И скачиваем модуль mod_pagespeed:

wget https://ngxpagespeed.com/install && chmod +x ./install

Если у Вас установлен уже nginx, то текущую его конфигурацию можно посмотреть командой:

nginx -V

Далее выполняем компиляцию nginx с модулем и обновлённым TLS командой:

./install --dynamic-module --ngx-pagespeed-version latest-beta --nginx-version 1.19.0 -a '--with-http_v2_module --with-openssl=/usr/local/src/openssl --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-mail --with-mail_ssl_module --with-stream --with-stream_ssl_module --with-http_geoip_module'

При установке соглашаемся с заменой.

После установки нужно добавить в начало конфигурационного файла nginx /etc/nginx/nginx.conf строку:

load_module "modules/ngx_pagespeed.so";

И ниже в блок http {} строки:

pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;

Так мы подключили к nginx модуль mod_pagespeed и включили его.

Чтобы включить TSL 1.3 нужно в конфигурационный файл nginx для сайта добавить строки в блок с ssl:

ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_protocols TLSv1.3 TLSv1.2;

 

Перезагрузите nginx:

service nginx restart

Теперь можем проверить работу TLS 1.3 на сайте: https://www.ssllabs.com/ssltest/

Для проверки работоспособности модуля mod_pagespeed, выполняем запрос curl к Вашему сайту:

curl -Is https://your-site.com/

 

Вывод будет таким:

HTTP/2 200
server: nginx/1.19.0
content-type: text/html
strict-transport-security: max-age=31536000;
date: Mon, 23 Nov 2020 09:39:40 GMT
x-page-speed: 1.13.35.2-0
cache-control: max-age=0, no-cache

Как видим, в заголовке присутствует строка «x-page-speed: 1.13.35.2-0», а значит модуль работает.
На этом настройка nginx для включения TLS 1.3 и использования модуля mod_pagespeed завершена.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *