SSL redirect บนอินสแตนซ์ EC2 ที่อยู่เบื้องหลัง SSL กำลังยกเลิก load balancer


11

ฉันกำลังพยายามเปลี่ยนเส้นทาง URL ทั้งหมดไปยัง https ในเว็บแอปพลิเคชัน

ฉันมีอินสแตนซ์ ec2 อยู่เบื้องหลังตัวโหลดบาลานซ์แบบยืดหยุ่น SSL ถูกยกเลิกบน load balancer

ความพยายามในการเปลี่ยนเส้นทางท้ายที่สุดทำให้ฉันคุ้นเคย 'หน้านี้กำลังขอในลักษณะที่จะไม่สมบูรณ์'

ตัวโหลดบาลานซ์ส่งต่อ 443 และ 80 ไปยังพอร์ต 80 บนอินสแตนซ์

นี่คือสิ่งที่ฉันมีใน. htaccess ของฉัน

RewriteCond %{X-FORWARDED-PROTO} !=on  
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

ไม่มีใครมีความคิดวิธีการทำสิ่งนี้? ขอบคุณมาก

คำตอบ:


17

ยังไม่ทดลอง .. แต่ฉันลองทำดู

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#x-forwarded-proto


1
ใช่ ขอบคุณมาก. เคยดิ้นรนกับสิ่งนี้มาระยะหนึ่งแล้ว ชื่นชมมาก โปรดโหวตคำตอบนี้ถ้าคุณพบความช่วยเหลือ ขอบคุณ ...
rix

ลิงก์ใช้งานไม่ได้
Bill Rosmus

โซลูชันยังคงใช้ได้ พบคำอธิบายบางอย่างได้ที่นี่: docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/…
ทิม

ทำงานให้ฉัน ทดสอบวันนี้
เบ็นซินแคลร์

0

คำตอบของMikeส่วนใหญ่ถูกต้อง แต่สิ่งสำคัญคือต้องชี้ให้เห็นว่า load balancer จะต้องดำเนินการตรวจสุขภาพเพื่อให้แน่ใจว่าอินสแตนซ์ ec2 ยังมีชีวิตอยู่และดี ซึ่งสามารถทำได้ด้วยการเพิ่มเติมRewriteCond

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{REQUEST_URI} !^/alive\.html$
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

... alive.htmlชื่อของไฟล์ตรวจสุขภาพของคุณอยู่ที่ไหน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.