Добрый день.
Есть сервер где настроена связка nginx + php 7. После конфигурирования обратил внимание, что есть site.ru где есть http и https, а есть пару сайтов без https site.com, site.ua. Так вот если открыть site.com или site.ua то происходит редирект на https://site.ru и как следствие ошибка сертификата.
Подскажите где ошибся пример конфига
server {
listen 80;
server_name site.ru www.site.ru;
rewrite ^/(.*)$ https://$host/$1 permanent;
....
server {
listen 443 ssl;
server_name siteru www.site.ru;
keepalive_timeout 75 75;
.......
nginx https, редирект на с сайта где нет https.
Модератор: SLEDopit
- Bizdelnick
- Модератор
- Сообщения: 20794
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: nginx https, редирект на с сайта где нет https.
Если открыть по https, или по http тоже? Если по https, то лечится только настройкой https для всех сайтов или разнесением их по разным IP-адресам.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: nginx https, редирект на с сайта где нет https.
На Apache такой проблемы не было неприятный сюрприз, если у другого сайта есть серт то все норм.
- Bizdelnick
- Модератор
- Сообщения: 20794
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: nginx https, редирект на с сайта где нет https.
Не, это я невнимательно прочитал. Не должно такого быть. Показывайте полные конфиги.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: nginx https, редирект на с сайта где нет https.
Как у вас схема редиректа устроена? http://site.com ⇒ https://site.com ⇒ https://site.ru или http://site.com ⇒ https://site.ru?
Если запустить wget -O /dev/null http://site.com, какую показывает цепочку редиректов?
У вас случайно не был настроен раньше https://site.com с HSTS, который вы отключили и оставили только редирект http://site.com ⇒ https://site.ru?
Если запустить wget -O /dev/null http://site.com, какую показывает цепочку редиректов?
У вас случайно не был настроен раньше https://site.com с HSTS, который вы отключили и оставили только редирект http://site.com ⇒ https://site.ru?
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
Re: nginx https, редирект на с сайта где нет https.
Вот конфиг сайта на который попадаю если набиру другой сайт с https, а по факту там его нет.
Вот конфиг сайта, который не имеет https, но ссылается на первый
Spoiler
Код: Выделить всё
server {
#Слушаем порт 80
listen 80;
#listen [::]:80;
# Название сайта
server_name site.ru www.site.ru;
#Редирект на https
rewrite ^/(.*)$ https://$host/$1 permanent;
#Логирование
access_log /var/log/nginx/site.ru.log;
error_log /var/log/nginx/site.ru.error.log error;
root /var/www/site.ru;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
index index.php index.html;
# Включить gzip-сжатие на выходе бэкенда. В кэш пойдут уже сжатые версии файлов.
# Здесь происходит сжатие на 9 уровне компрессии. Обратите внимание, среди типов отсутствует text/plain,
# его мы сжимаем во фронтенде на 1 уровне компрессии, чтобы избежать высокой степени загрузки CPU при отдаче динамических данных
#gzip on;
#gzip_comp_level 9;
#gzip_min_length 512;
#gzip_buffers 8 64k;
#gzip_types text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;
#gzip_proxied any;
location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
expires max;
}
#ЧПУ
location / {
try_files $uri @second_check;
}
location @second_check {
try_files $uri/index.php @bitrix;
fastcgi_pass 127.0.0.1:9002;
fastcgi_param SCRIPT_FILENAME $document_root$uri;
include fastcgi_params;
}
location ~ \.php$ {
try_files $uri @bitrix;
fastcgi_pass 127.0.0.1:9002;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location @bitrix {
fastcgi_pass 127.0.0.1:9002;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/bitrix/urlrewrite.php;
}
}
server {
listen 443 ssl;
server_name site.ru www.site.ru;
keepalive_timeout 75 75;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
ssl_certificate /etc/nginx/anosin/www_site_ru.crt;
ssl_certificate_key /etc/nginx/anosin/5571700.key;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
add_header Strict-Transport-Security 'max-age=31536000';
# ssl_stapling on;
# ssl_stapling_verify on;
charset off;
gzip on;
gzip_comp_level 5;
gzip_types application/x-javascript application/javascript text/css;
index index.php index.html
access_log /var/log/nginx/site.ssl.ru.log;
error_log /var/log/nginx/site.ssl.ru.error.log error;
root /var/www/site.ru;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
expires max;
}
#ЧПУ
location / {
try_files $uri @second_check;
}
location @second_check {
try_files $uri/index.php @bitrix;
fastcgi_pass 127.0.0.1:9002;
fastcgi_param SCRIPT_FILENAME $document_root$uri;
include fastcgi_params;
}
location ~ \.php$ {
try_files $uri @bitrix;
fastcgi_pass 127.0.0.1:9002;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location @bitrix {
fastcgi_pass 127.0.0.1:9002;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/bitrix/urlrewrite.php;
}
}
Spoiler
Код: Выделить всё
server {
listen 80;
#listen [::]:80;
server_name site2.ru www.site2.ru;
access_log /var/log/nginx/site2.ru.log;
error_log /var/log/nginx/site2.ru.error.log error;
root /var/www/site2.ru;
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
# Включить gzip-сжатие на выходе бэкенда. В кэш пойдут уже сжатые версии файлов.
# Здесь происходит сжатие на 9 уровне компрессии. Обратите внимание, среди типов отсутствует text/plain,
# его мы сжимаем во фронтенде на 1 уровне компрессии, чтобы избежать высокой степени загрузки CPU при отдаче динамических данных
gzip on;
gzip_comp_level 9;
gzip_min_length 512;
gzip_buffers 8 64k;
gzip_types text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;
gzip_proxied any;
location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
expires max;
}
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
# try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php?$args;
}
# Запрет на доступ к загруженным скриптам
location ~* /(?:uploads|files)/.*\.php$ {
deny all;
}
location ~* ^/(\.htaccess|xmlrpc\.php)$ {
return 404;
}
location /wp-admin/{
allow 176.62.187.219;
allow 176.62.187.187;
allow 176.62.184.142;
allow 91.192.20.1;
deny all;
}
location /wp-admin/admin-ajax.php {
allow all;
}
location /wp-login.php {
allow 176.62.187.219;
allow 176.62.187.187;
allow 176.62.184.142;
allow 91.192.20.1;
deny all;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass 127.0.0.1:9000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
- Bizdelnick
- Модератор
- Сообщения: 20794
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: nginx https, редирект на с сайта где нет https.
Так, я совсем запутался. Меня сбила с толку фраза
По факту-то редиректа нет, просто открывается содержимое site.ru с сертификатом от site.ru по URL https://site.com, так? Если так, мой первый ответ был правильный:
Добиться работоспособности https://site.com (даже простого редиректа на http://site.com), не имея для него сертификата, в принципе невозможно. От веб-сервера это не зависит.Bizdelnick писал(а): ↑ лечится только настройкой https для всех сайтов или разнесением их по разным IP-адресам.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Спасибо сказали:
Re: nginx https, редирект на с сайта где нет https.
спс, поднял второй ип