LINUX.ORG.RU

Не работает редирект в mozilla.

 ,


0

1

Пытаюсь сделать редирект с https://www.lan-ip.ru/ на https://lan-ip.ru/ Во всех браузерах работает а в mozilla нет.

Мой конфиг nginx


server {
	server_name www.lan-ip.ru;
	return 301 https://lan-ip.ru$request_uri;
}

server {
	listen 80;
	listen [::]:80;
	server_name lan-ip.ru;
	return 301 https://lan-ip.ru$request_uri;
}

server {
	listen 443 ssl;
	listen [::]:443 ssl;
	root /var/www/lanip;
	# certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
	ssl_certificate /etc/letsencrypt/live/lan-ip.ru/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/lan-ip.ru/privkey.pem;
	ssl_session_timeout 1d;
    	ssl_session_cache shared:SSL:50m;
    	ssl_session_tickets off;

    	# Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
	ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    	# intermediate configuration. tweak to your needs.
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	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';
	ssl_prefer_server_ciphers on;

	# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
	add_header Strict-Transport-Security max-age=15768000;

	# OCSP Stapling ---
	# fetch OCSP records from URL in ssl_certificate and cache them
	ssl_stapling on;
	ssl_stapling_verify on;

	## verify chain of trust of OCSP response using Root CA and Intermediate certs
	ssl_trusted_certificate /etc/letsencrypt/live/lan-ip.ru/chain.pem;


	location / {
		index  index.php index.html index.htm;
	}

    location ~ \.php$ {
        fastcgi_pass   unix:/run/php/php7.2-fpm.sock; 
        fastcgi_index  index.php;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    
    location ~ /\.ht {
        deny  all;
    }

   # include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot



    #if ($scheme != "https") {
    #    return 301 https://$host$request_uri;
    #}

}


подскажите где ошибся?спасибо.

В чём выражается «не работает»? А curl-ом работает? А в браузерной панели разработчика (вкладка сеть) во время «не работает» что видно?

MrClon ★★★★★ ()

http://www.lan-ip.ru uses an invalid security certificate.
The certificate is only valid for lan-ip.ru
Error code: SSL_ERROR_BAD_CERT_DOMAIN

Тонко намекает на тот факт, что браузер не обязан доверять данным приходящим с такого хоста и не обязан выполнять переходы.
Хром в свою очередь занимается странной самодеятельностью:

Redirecting navigation http://www.lan-ip.ru -> lan-ip.ru because the server presented a certificate valid for lan-ip.ru but not for http://www.lan-ip.ru. To disable such redirects launch Chrome with the following flag: --disable-features=SSLCommonNameMismatchHandling

Так что у тебя и в хроме редирект на самом деле не работает.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Palamar

Тем что позволит понять общий-ли это косяк, или что-то специфичное для фокса.
Отлавливать такие косяки надо curl-ом и браузерными инструментами разработчика, а не просто тыкать в ссылку и констатировать что «ниработаит»

MrClon ★★★★★ ()
Ответ на: комментарий от Palamar

Первая циатата - ошибка в FF.
Вторая цитата - консоль в хроме.

Deleted ()

У тебя в первом блоке server (тот который с www и редиректом) нет listen. Не уверен что такое в принципе может работать. Для https корректно это работать точно не может (если даже запрос как-то провалится в этот server, nginx не будет знать какой сертификат использовать для ответа). Сейчас запросы по https видимо проваливаются в последний server (потому-что он последний, да и вообще единственный слушающий на 443 порту), вот редиректа и не происходит, в том server ничего про редирект не написано.

В общем кури доки до просветления и наводи порядок в конфиге
https://nginx.ru/ru/docs/http/request_processing.html
https://nginx.ru/ru/docs/http/server_names.html

MrClon ★★★★★ ()
Ответ на: комментарий от Palamar

curl -v -k https://www.lan-ip.ru/ -v — подробный вывод, -k — игнорировать ошибки ssl (потому-что у тебя сейчас он работает не корректно)

MrClon ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.