We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
Настройка HTTP Strict Transport Security (HSTS)
Настройка HTTP Strict Transport Security (HSTS)
В результате разных экспериментов сделал, чтобы всетаки заработал HTTP Strict Transport Security (HSTS).
Если гуру заметят нестыковки - прошу обязательно указать, чтобы все было правильно.
Предполагается, что предварительно в панели вы уже активировали SSL для домена (USER - WEB - Поддержка ProxyNGINX, Шаблон Proxy http2, Поддержка SSL)
Для начала лучше посмотреть сюда /etc/nginx/conf.d/vesta.conf
в нем и будут пути к файлам для конфигурации хостов
Сначала нужно посмотреть/поправить конфиг /etc/nginx/nginx.conf
/etc/nginx/conf.d/MYDOMEN.conf
Идем сюда /home/ИМЯ/conf/web/MYDOMEN.nginx.ssl.conf
Проверяю здесь https://www.ssllabs.com/ssltest/ и здесь https://spdycheck.org
проверял на CentOS 7.5.1804 (Core)
nginx version: nginx/1.14.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
потом пересобрал с OpenSSL 1.1.0h 27 Mar 2018 (как пересобрать могу тоже написать)
Внимательно смотрим код и заменяем на свои: ИМЯ / MYDOMEN/ Domen_IP.
Для проверки правильности кода проверяем на ошибки командой: nginx -t
После правки кода перезапускаем nginx:
заставит nginx перечитать конфигурацию: nginx -s reload
полностью перезапустить: service nginx restart
или
service nginx stop
service nginx start
В результате SSL Report выдает A+ grade.
p.s.
На всякий случай
--with-http_spdy_module заменён модулем --with-http_v2_module в версии nginx 1.9.5, поэтому в конфигах нужно указывать http2
Если гуру заметят нестыковки - прошу обязательно указать, чтобы все было правильно.
Предполагается, что предварительно в панели вы уже активировали SSL для домена (USER - WEB - Поддержка ProxyNGINX, Шаблон Proxy http2, Поддержка SSL)
Для начала лучше посмотреть сюда /etc/nginx/conf.d/vesta.conf
в нем и будут пути к файлам для конфигурации хостов
Сначала нужно посмотреть/поправить конфиг /etc/nginx/nginx.conf
Code: Select all
# Server globals
user nginx;
worker_processes auto;
worker_rlimit_nofile 65535;
error_log /var/log/nginx/error.log crit;
pid /var/run/nginx.pid;
# Worker config
events {
worker_connections 1024;
use epoll;
multi_accept on;
}
http {
# Main settings
sendfile on;
tcp_nopush on;
tcp_nodelay on;
client_header_timeout 1m;
client_body_timeout 1m;
client_header_buffer_size 2k;
client_body_buffer_size 256k;
client_max_body_size 256m;
large_client_header_buffers 4 8k;
send_timeout 30;
keepalive_timeout 60 60;
reset_timedout_connection on;
server_tokens off;
server_name_in_redirect off;
server_names_hash_max_size 512;
server_names_hash_bucket_size 512;
# Log format
log_format main '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
log_format bytes '$body_bytes_sent';
#access_log /var/log/nginx/access.log main;
access_log off;
# Mime settings
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Compression
gzip on;
gzip_comp_level 9;
gzip_min_length 512;
gzip_buffers 8 64k;
gzip_types text/plain text/css text/javascript text/js text/xml application/json application/javascript application/x-javascript application/xml application/xml+rss application/x-font-ttf image/svg+xml font/opentype;
gzip_proxied any;
gzip_disable "MSIE [1-6]\.";
# Proxy settings
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header Set-Cookie;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
# Cloudflare https://www.cloudflare.com/ips
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
#set_real_ip_from 2400:cb00::/32;
#set_real_ip_from 2606:4700::/32;
#set_real_ip_from 2803:f800::/32;
#set_real_ip_from 2405:b500::/32;
#set_real_ip_from 2405:8100::/32;
#set_real_ip_from 2c0f:f248::/32;
#set_real_ip_from 2a06:98c0::/29;
real_ip_header CF-Connecting-IP;
# SSL PCI Compliance
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
# Error pages
error_page 403 /error/403.html;
error_page 404 /error/404.html;
error_page 502 503 504 /error/50x.html;
# Cache settings
proxy_cache_path /var/cache/nginx levels=2 keys_zone=cache:10m inactive=60m max_size=1024m;
proxy_cache_key "$host$request_uri $cookie_user";
proxy_temp_path /var/cache/nginx/temp;
proxy_ignore_headers Expires Cache-Control;
proxy_cache_use_stale error timeout invalid_header http_502;
proxy_cache_valid any 1d;
# Cache bypass
map $http_cookie $no_cache {
default 0;
~SESS 1;
~wordpress_logged_in 1;
}
# File cache settings
open_file_cache max=10000 inactive=30s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors off;
# Wildcard include
include /etc/nginx/conf.d/*.conf;
}
Code: Select all
server {
listen Domen_IP:80 default;
server_name _;
#access_log /var/log/nginx/Domen_IP.log main;
location / {
proxy_pass http://Domen_IP:8080;
}
}
Code: Select all
server {
listen Domen_IP:443 http2;
server_name MYDOMEN www.MYDOMEN;
ssl_stapling on;
ssl on;
ssl_certificate /home/ИМЯ/conf/web/ssl.MYDOMEN.pem;
ssl_certificate_key /home/ИМЯ/conf/web/ssl.MYDOMEN.key;
ssl_dhparam /home/admin/conf/web/dhparams.pem; #предварительно генерируем командой openssl dhparam -out /home/admin/conf/web/dhparams.pem 4096
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000;";
error_log /var/log/httpd/domains/MYDOMEN.error.log error;
location / {
proxy_pass https://Domen_IP:8443;
location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf|webp|woff|txt|csv|rtf|doc|docx|xls|xlsx|ppt|pptx|odf|odp|ods|odt|pdf|psd|ai|eot|eps|ps|zip|tar|tgz|gz|rar|bz2|7z|aac|m4a|mp3|mp4|ogg|wav|wma|3gp|avi|flv|m4v|mkv|mov|mpeg|mpg|wmv|exe|iso|dmg|swf)$ {
root /home/ИМЯ/web/MYDOMEN/public_html;
access_log /var/log/httpd/domains/MYDOMEN.log combined;
access_log /var/log/httpd/domains/MYDOMEN.bytes bytes;
expires max;
try_files $uri @fallback;
}
}
location /error/ {
alias /home/ИМЯ/web/MYDOMEN/document_errors/;
}
location @fallback {
proxy_pass https://Domen_IP:8443;
}
location ~ /\.ht {return 404;}
location ~ /\.svn/ {return 404;}
location ~ /\.git/ {return 404;}
location ~ /\.hg/ {return 404;}
location ~ /\.bzr/ {return 404;}
include /home/ИМЯ/conf/web/snginx.MYDOMEN.conf*;
}
проверял на CentOS 7.5.1804 (Core)
nginx version: nginx/1.14.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
потом пересобрал с OpenSSL 1.1.0h 27 Mar 2018 (как пересобрать могу тоже написать)
Внимательно смотрим код и заменяем на свои: ИМЯ / MYDOMEN/ Domen_IP.
Для проверки правильности кода проверяем на ошибки командой: nginx -t
После правки кода перезапускаем nginx:
заставит nginx перечитать конфигурацию: nginx -s reload
полностью перезапустить: service nginx restart
или
service nginx stop
service nginx start
В результате SSL Report выдает A+ grade.
p.s.
На всякий случай
--with-http_spdy_module заменён модулем --with-http_v2_module в версии nginx 1.9.5, поэтому в конфигах нужно указывать http2
Last edited by Odyssey on Wed Aug 01, 2018 11:41 pm, edited 5 times in total.
Re: Настройка HTTP Strict Transport Security (HSTS)
что-то поломал, почему то главная открывается, а при переходе на др. страницы идет редирект на https://ip адрес/страница
все пересмотрел - голова уже пухнет, может кто-то подскажет
все пересмотрел - голова уже пухнет, может кто-то подскажет
Re: Настройка HTTP Strict Transport Security (HSTS)
Попробуйте для пользователя rebuild web и dns сделатьOdyssey wrote: ↑Sun Jul 29, 2018 1:17 pmчто-то поломал, почему то главная открывается, а при переходе на др. страницы идет редирект на https://ip адрес/страница
все пересмотрел - голова уже пухнет, может кто-то подскажет
Re: Настройка HTTP Strict Transport Security (HSTS)
rebuild web делал, dns в панели нет.imperio wrote: ↑Wed Aug 01, 2018 10:41 amПопробуйте для пользователя rebuild web и dns сделатьOdyssey wrote: ↑Sun Jul 29, 2018 1:17 pmчто-то поломал, почему то главная открывается, а при переходе на др. страницы идет редирект на https://ip адрес/страница
все пересмотрел - голова уже пухнет, может кто-то подскажет
вылечил установкой с нуля :(