Приклад налаштування 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 і включили його.

Щоб включити TLS 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 завершена.

Goodhoster.NET
Додати коментар