ฉันเป็น CloudFront Distribution ที่ใช้ AWS Certificate สำหรับคำขอ SSL/TLS ที่มาจาก https://example.com
และต้นทางที่ส่งต่อคำขอเหล่านั้นไปยัง EC2
การกระจายถูกตั้งค่าให้ใช้โปรโตคอล HTTP ระหว่างตัวมันเองและต้นทาง (EC2) และพฤติกรรมถูกตั้งค่าเป็น เปลี่ยนเส้นทาง HTTP เป็น HTTPS
เช่นใด ๆ http://example.com
จะถูกเปลี่ยนเส้นทางไปที่ https://example.com
.
EC2 มีเซิร์ฟเวอร์ Apache ที่ให้บริการไฟล์ แต่เมื่อฉันไปเยี่ยม https://example.com
ทรัพยากรแบบคงที่ทั้งหมด (css, js) กำลังให้บริการผ่าน HTTP ซึ่งถูกบล็อกโดย broser เนื่องจาก กำลังโหลดเนื้อหาที่ใช้งานแบบผสม
.
การกำหนดค่า Apache ปัจจุบันของฉันมีเพียงค่าเริ่มต้นเท่านั้น /etc/apache2/sites-enabled/000-default.conf
กับ <VirtualHost *:80>
และ <VirtualHost *:443>
ไม่ได้อยู่. นอกจากนี้ฉันไม่ได้สร้าง <VirtualHost *:443>
เนื่องจากฉันไม่มีใบรับรองและคีย์สำหรับ SSL
ฉันจะแก้ปัญหานี้ได้อย่างไร? เป็นไปได้หรือไม่ผ่าน reverse proxy? อะไรคือแนวปฏิบัติที่ดีที่สุดที่นี่?
อัปเดต:
การตั้งค่าของฉันเหมือนกับที่อธิบายไว้ในคำตอบนี้ แต่ไม่มี ELB https://stackoverflow.com/a/44453691/1197636.