реврайт открытия по ip

L
На сайте с 13.01.2011
Offline
132
912

стоит сайт https на nginx первым на ip и открывается по https://ip

вариант убрать с него default_server ssl не рассматривается

как можно завернуть запрос https://192.168.1.1 301 редиректом на сайт ?

лог


46.42.1.1 - - [27/Apr/2016:20:11:04 +0300] "GET / HTTP/2.0" 200 116 "https://192.168.1.1/" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36"

попробовал в htaccess - не работает


RewriteCond %{HTTP_REFERER} ^https://192\.168\.1\.1/
RewriteRule ^(.*)$ https://site.ru/ [R=301,L]

может как то через if в nginx - типа:


if ($http_referer ~* (192\.168\.11\.1)) {
rewrite ^(.*)$ https://site.ru$1 permanent;
}
Контакты-icq 535609 ()
redeyer
На сайте с 27.01.2010
Offline
102
#1

Что-то либо я вас не понимаю, либо вы чего-то не понимаете. Вам нужно сделать чтобы при обращении по IP был редирект на сайт? Если так, то при чём тут http_referer? Реферер - это источник перехода, откуда пришел клиент. Конструкция с if... будет срабатывать, только когда запросы приходят с указанного IP.

Если же нужен просто редирект обращения по IP на сайт, то примерно вот так:

server {
listen 443;
server_name 192.168.1.1;

return 301 $scheme://site.com$request_uri;
}

В общем, у вас скорей всего ничего не срабатывает, потому что оно всегда будет попадать в default. Нужно описать для него дополнительный блок server с нужным адресом в server_name. То что вам нужно можно сделать и другими способами, конечно. Если хотите через if, то нужно проверять $host, а не http_referer

Услуги сисадмина. Настройка и оптимизация VPS https://searchengines.guru/ru/forum/928318 . Поднятие своих прокси, восстановление сайтов из вебархива. Мой канал о хостингах https://t.me/hostingexpert
L
На сайте с 13.01.2011
Offline
132
#2
redeyer:
Если хотите через if, то нужно проверять $host, а не http_referer

Да - ошибся ) спасибо!


if ($host ~* (192\.168\.1\.1)) {
rewrite ^(.*)$ https://site.ru permanent;
}

работает.

проблема открытия сайта по ip(не гуд) возникла из за необходимости поставить htts://site на default_server ssl, потому что яндекс касса требует чтобы вызов

Яндекс пишет - наша платежная система не поддерживает работу сертификатов по технологии SNI или когда при SSL соединении надо указывать имя домена.

echo | openssl s_client -connect site.ru:443 2>/dev/null | openssl x509 -text| head

выдавал сертификат(серийный номер сертификата) именно site.ru

пока я не поставил сайт на default_server ssl - он выдавал серийник по этому запросу - левого сертификата - а точнее сертификат(серийник) самоподписный панели isp 4 - который стоит первым на ip сервера

раньше лечилось установкой валидного сертификата на панель - https://srv.site.ru/manager/ispmgr - щас не помогает

nginx 1.9.15

конструкция с http2


server {
server_name site.ru;
listen 192.168.1.1:443 default_server ssl http2;
****
}

кто то знает как лечить чтобы выдавал сертификат именно того сайта по которому идет вышеуказаный запрос ?

у всех такая проблема ?

DV
На сайте с 01.05.2010
Offline
644
#3

Почему бы не отдавать по IP 444?

Нет ничего там, пусть забудут про IP.

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
redeyer
На сайте с 27.01.2010
Offline
102
#4
Logger:
кто то знает как лечить чтобы выдавал сертификат именно того сайта по которому идет вышеуказаный запрос ?
у всех такая проблема ?

Так надо в блок server для https сайта добавить инклад или сразу подключение нужного серта и ключа.


server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;

Соответственно, по указанному пути должны лежать эти файлы.

HTTPS и сертификат панели ISP отдается на 1500 порту, обычно, кажется они нормально будут жить параллельно.

DenisVS:
Почему бы не отдавать по IP 444?
Нет ничего там, пусть забудут про IP.

Ну человек хочет чтоб был редирект на сайт с IP, так тоже бывает.

А так да, писал как настроить default в nginx и один конфиг для кучи сайтов. Там пример - если папка с именем сайта в названии существует - то отдаётся, если нету, то default и 444 (empty_response).

L
На сайте с 13.01.2011
Offline
132
#5
redeyer:
Так надо в блок server для https сайта добавить инклад или сразу подключение нужного серта и ключа.

у вас есть сайт на https nginx с панелью isp4 ?

покажите вывод команды и ссылку на сайт - проверим серийник сертификата и то что выдало


echo | openssl s_client -connect site.ru:443 2>/dev/null | openssl x509 -text| head
redeyer
На сайте с 27.01.2010
Offline
102
#6
Logger:
у вас есть сайт на https nginx с панелью isp4 ?
покажите вывод команды и ссылку на сайт - проверим серийник сертификата и то что выдало

Нет, у меня нету. Ни на isp 4 (панели вообще не юзаю), ни на https (пока нету сайтов, где он был бы нужен) :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий