Tags:

คือผมจะทำบังคับให้เปิด SSL ครับ ผมลองเซ็ตตามด้านล่างแล้วเบราเซอร์แจ้งกลับว่า เว็บไซต์ที่กลับเปิดทำ redirect loop มากเกินไปครับ

วิธีที่1

server {
listen 80;
listen [::]:80;
listen 443 default ssl;

server_name www.example.com;

ssl_certificate /path/to/my/cert;
ssl_certificate_key /path/to/my/key;

if ($ssl_protocol = "") {
rewrite ^/(.*) https://$server_name/$1 permanent;
}
}

วิธีที่ 2

server {
listen 80;
listen [::]:80;
listen 443 default_server ssl;

server_name www.example.com;

ssl_certificate /path/to/my/cert;
ssl_certificate_key /path/to/my/key;

if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
}

และวิธีที่ 3

server {
listen 80;
listen [::]:80;

server_name www.example.com;

return 301 https://$server_name$request_uri;
}
server {
listen 443 default_server ssl;

server_name www.example.com;

ssl_certificate /path/to/my/cert;
ssl_certificate_key /path/to/my/key;
}

ทั้งหมดนี้แจ้งกลับหมดเลยว่า redirect loop ครับ มีวิธีอื่นไหมครับ?

Get latest news from Blognone
By: bouroo
AndroidRed HatUbuntuIn Love
on 13 October 2015 - 12:57 #852322
bouroo's picture

วิธีที่ 3 ขาด ssl on; รึเปล่าครับ? ส่วน 1, 2 นี่ -_-'

ปกติน่าจะเป็น

server {
	listen 80;
	listen [::]:80 ipv6only=on;
	server_name abc.xyz;
	
	# redirect all requests to https
	return 301 https://$server_name$request_uri;
}

server {
	listen 443 default_server ssl;
	listen [::]:443 default_server ssl ipv6only=on;

	server_name abc.xyz;
	
	charset	utf-8;
	
	ssl on;
	ssl_certificate /path/server.crt;
	ssl_certificate_key /path/server.key;

	ssl_stapling on;
	ssl_stapling_verify on;
	ssl_trusted_certificate /path/ca-certs.pem;
	
	# Enforce STS
	add_header Strict-Transport-Security max-age=15768000;
}
By: iDan
ContributorAndroidSUSEUbuntu
on 13 October 2015 - 18:52 #852399 Reply to:852322

ได้แล้วครับ ขอบคุณมากครับ