tms_nginx_with_ssl_configuration
Содержание
Документация только для TMS версии 3.2.x
Настройка веб сервера nginx с SSL как проксирующего сервера для TMS
Требования
Для получения ssl сертификата letsencrypt, сервер должен иметь публичный (доступный из интернета) домен и IP адрес.
Необходимое ПО
- Nginx - реверс прокси
- Certbot - получение сертификатов letsencrypt
Установка nginx
apt update && apt install nginx
Настройка nginx
- Распакаовать шаблоны кофигурации nginx nginx_sample_configs.zip
unzip nginx_sample_configs.zip
- Расположить шаблоны в нужных местах
cd nginx_sample_configs/ rm -f /etc/nginx/conf.d/default.conf cp virtualhost_sample.conf /etc/nginx/conf.d/ mkdir -p /etc/nginx/tvip/ cp tms-locations.conf /etc/nginx/tvip/
- Исправить стандартные значения
Настройка TMS
Редактируем конфигурационный файл tvip-tms в любом редакторе, для примера vim
vim /opt/tvip-tms/application-prod.properties
В нем добавляем следующие параметры
server.port=8080 network.trusted-proxies=127.0.0.1 server.address=127.0.0.1
Перезапуск сервисов
systemctl restart tvip-tms systemctl restart nginx
Установка certbot
apt install certbot
Создаем постоянную директорию для проверки домена ботом
mkdir -p /var/www/html/.well-known/acme-challenge
Конфигурируем certbot
certbot register --agree-tos --m ваш_email
certbot certonly -d ваш_домен --webroot
Отвечаем на вопросы бота
Input the webroot for ваш_домен: (Enter 'c' to cancel): /var/www/html/
Добавить в файл крона
nano /etc/cron.d/certbot
Итоговый файл должен выглядить следующим образом
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew --renew -hook "/etc/init.d/nginx reload"
Завершение настройки
После успешного полученая сертификата сертификат и ключ будут расположены по адресу:
- Сертификат - /etc/letsencrypt/live/ваш_домен/fullchain.pem
- Ключ - /etc/letsencrypt/live/ваш_домен/privkey.pem
Редактируем файл конфигурации виртуального хоста, приводим к виду
proxy_cache_path /cache levels=1:2 keys_zone=ram:10m inactive=21600s max_size=1900m;
proxy_cache_min_uses 1;
upstream tms {
server 127.0.0.1:8080; # UPSTREAM TO TMS TMS bind port 8080 on localhost
}
server {
listen 80;
server_name ваш_домен; # Указываем Ваш домен
server_tokens off;
access_log /var/log/nginx/localhost-http-access.log;
error_log /var/log/nginx/localhost-http-error.log;
underscores_in_headers on;
large_client_header_buffers 8 32k;
include /etc/nginx/tvip/tms-locations.conf;
location /.well-known {
root /var/www/html;
}
}
server {
listen 443 ssl;
server_name ваш_домен; # Указываем Ваш домен
access_log /var/log/nginx/localhost-https-access.log;
error_log /var/log/nginx/localhost-https-error.log;
ssl_certificate /etc/letsencrypt/live/ваш_домен/fullchain.pem; # Указываем Ваш домен
ssl_certificate_key /etc/letsencrypt/live/ваш_домен/privkey.pem; # Указываем Ваш домен
ssl_trusted_certificate /etc/letsencrypt/live/ваш_домен/chain.pem; # Указываем Ваш домен
ssl_dhparam /etc/ssl/dhparam.pem;
ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA512:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:ECDH+AESGCM:ECDH+AES256:DH+AESGCM:DH+AES256:RSA+AESGCM:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;
ssl_session_cache shared:TLS:2m;
ssl_buffer_size 4k;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload' always;
include /etc/nginx/tvip/tms-locations.conf;
Применяем конфигурацию
systemctl reload nginx
tms_nginx_with_ssl_configuration.txt · Последнее изменение: — Денис Цыганов
