เราจะเปิดใช้ HTTPS ใน Amazon EC2 ได้อย่างไร ไซต์ของเรากำลังทำงานบน HTTP
เราจะเปิดใช้ HTTPS ใน Amazon EC2 ได้อย่างไร ไซต์ของเรากำลังทำงานบน HTTP
คำตอบ:
ขั้นแรกคุณต้องเปิดพอร์ต HTTPS (443) ในการทำเช่นนั้นให้ไปที่https://console.aws.amazon.com/ec2/และคลิกที่Security Groups
ลิงก์ทางด้านซ้ายจากนั้นสร้างกลุ่มความปลอดภัยใหม่โดยมี HTTPS ด้วย จากนั้นเพียงอัปเดตกลุ่มความปลอดภัยของอินสแตนซ์ที่กำลังทำงานอยู่หรือสร้างอินสแตนซ์ใหม่โดยใช้กลุ่มนั้น
หลังจากขั้นตอนเหล่านี้งาน EC2 ของคุณเสร็จสิ้นและทั้งหมดนี้เป็นปัญหาของแอปพลิเคชัน
you can't change a security group of a running instance, even rebooting
- ฉันคิดว่าข้อ จำกัด นี้ถูกลบออกไปตั้งแต่โพสต์คำตอบนี้
Edit inbound rules
คำตอบนี้มุ่งเน้นไปที่ผู้ที่ซื้อโดเมนในไซต์อื่น (เช่น GoDaddy) และต้องการใช้ใบรับรองฟรีของ Amazon กับ Certificate Manager
คำตอบนี้ใช้ Amazon Classic Load Balancer (จ่าย) ดูราคาก่อนใช้งาน
ขั้นตอนที่ 1 - ขอใบรับรองกับ Certificate Manager
ไปที่ตัวจัดการใบรับรอง> ขอใบรับรอง> ขอใบรับรองสาธารณะ
ในชื่อโดเมนคุณจะเพิ่มmyprojectdomainname.com
และ*.myprojectdomainname.com
และไปถัดไป
เลือกการตรวจสอบอีเมลและยืนยันและร้องขอ
เปิดอีเมลที่คุณได้รับ (ในบัญชีอีเมลที่คุณซื้อโดเมน) และเปิดเผยคำขอ
หลังจากนี้ให้ตรวจสอบว่าสถานะการตรวจสอบความถูกต้อง myprojectdomainname.com
และ*.myprojectdomainname.com
สำเร็จหรือไม่หากสำเร็จคุณสามารถดำเนินการต่อในขั้นตอนที่ 2
ขั้นตอนที่ 2 - สร้างกลุ่มความปลอดภัยให้กับ Load Balancer
ใน EC2 ให้ไปที่ Security Groups> และ Create a Security Group และเพิ่ม http และ https ขาเข้า
ขั้นตอนที่ 3 - สร้างตัวจัดสรรภาระงาน
EC2> ตัวโหลดบาลานเซอร์> สร้างตัวโหลดบาลานเซอร์> ตัวโหลดบาลานเซอร์แบบคลาสสิก (ตัวเลือกที่สาม)
สร้าง LB ภายใน - vpc ของโปรเจ็กต์ของคุณบน Load Balancer Protocol เพิ่ม Http และ Https
ถัดไป> เลือกออกจากกลุ่มความปลอดภัย
เลือกกลุ่มความปลอดภัยที่คุณสร้างไว้ในขั้นตอนก่อนหน้า
ถัดไป> เลือกใบรับรองจาก ACM
เลือกใบรับรองของขั้นตอนที่ 1
ถัดไป>
ในการตรวจสอบประสิทธิภาพการทำงานฉันใช้เส้นทาง ping / (หนึ่งเครื่องหมายทับแทน /index.html)
ขั้นตอนที่ 4 - เชื่อมโยงอินสแตนซ์ของคุณกับกลุ่มความปลอดภัยของตัวจัดสรรภาระงาน
EC2> อินสแตนซ์> คลิกที่โครงการของคุณ> การดำเนินการ> เครือข่าย> เปลี่ยนกลุ่มความปลอดภัย
เพิ่มกลุ่มความปลอดภัยของตัวจัดสรรภาระงานของคุณ
ขั้นตอนที่ 5
EC2> Load Balancer> คลิกที่ตัวโหลดบาลานเซอร์ที่คุณสร้าง> คัดลอกชื่อ DNS (A Record) มันจะเป็นอย่างนั้น myproject-2021611191.us-east-1.elb.amazonaws.com
ไปที่เส้นทาง 53> โซนเส้นทาง> คลิกที่ชื่อโดเมน> ไปที่ชุดระเบียน (หากคุณไม่มีโดเมนของคุณที่นี่ให้สร้างโซนที่โฮสต์ด้วยDomain Name: myprojectdomainname.com
และType: Public Hosted Zone
)
ตรวจสอบว่าคุณมีระเบียนประเภทA (อาจไม่ใช่) สร้าง / แก้ไขชุดระเบียนที่มีชื่อว่างเปล่าพิมพ์ A นามแฝงใช่และกำหนดเป้าหมาย DNS ที่คุณคัดลอก
สร้างชุดระเบียนใหม่ประเภทAชื่อ*.myprojectdomainname.com
นามแฝงใช่และกำหนดเป้าหมายโดเมนของคุณ (myprojectdomainname.com) วิธีนี้จะทำให้สามารถเข้าถึงไซต์ของคุณได้ด้วย www.myprojectdomainname.com และ subsite.myprojectdomainname.com หมายเหตุ: คุณจะต้องกำหนดค่า reverse proxy (Nginx / Apache) จึงจะทำได้
ใน NS คัดลอกค่าเซิร์ฟเวอร์ชื่อ 4 เพื่อใช้ในขั้นตอนต่อไปมันจะเป็นดังนี้:
ns-362.awsdns-45.com
ns-1558.awsdns-02.co.uk
ns-737.awsdns-28.net
ns-1522.awsdns-62.org
ไปที่ EC2> อินสแตนซ์> และคัดลอก IPv4 Public IP ด้วย
ขั้นตอนที่ 6
ในไซต์จดทะเบียนโดเมนที่คุณซื้อโดเมน (ในกรณีของฉันคือ GoDaddy)
เปลี่ยนการกำหนดเส้นทางhttp : <Your IPv4 Public IP Number>
และเลือกส่งต่อด้วยการกำบัง
เปลี่ยน Name Servers (NS) เป็น 4 NS ที่คุณคัดลอกซึ่งอาจใช้เวลา 48 ชั่วโมงจึงจะมีผล
อินสแตนซ์ Amazon EC2 เป็นเพียงเครื่องเสมือนดังนั้นคุณสามารถตั้งค่า SSL ได้แบบเดียวกับที่คุณตั้งค่าบนเซิร์ฟเวอร์ใด ๆ
คุณไม่ได้ระบุว่าคุณอยู่บนแพลตฟอร์มใดจึงเป็นการยากที่จะให้ข้อมูลเพิ่มเติม
คำถามเก่า แต่ควรกล่าวถึงตัวเลือกอื่นในคำตอบ ในกรณีที่ระบบ DNS ของโดเมนของคุณถูกกำหนดไว้ใน Amazon Route 53 คุณสามารถใช้บริการ Amazon CloudFront หน้า EC2 ของคุณและแนบใบรับรอง Amazon SSL ฟรีไปด้วย ด้วยวิธีนี้คุณจะได้รับประโยชน์จากทั้งการมี CDN เพื่อการส่งเนื้อหาที่รวดเร็วขึ้นและการรักษาความปลอดภัยโดเมนของคุณด้วยโปรโตคอล HTTPS
นอกจากนี้ยังต้องมีคำตอบสำหรับผู้ที่ต้องการ https ที่ไม่ยุ่งยากบน ec2 เพื่อจุดประสงค์ในการสาธิตและการทดสอบเป็นหลักวิธีหนึ่งที่พวกเขาสามารถทำได้อย่างรวดเร็วคือ:
ด้วยคำตอบของฉันที่นี่ซึ่งอธิบายถึงวิธีที่คุณสามารถบรรลุ https สำหรับวัตถุประสงค์ในการทดสอบในไม่กี่นาทีด้วย EC2 โดยไม่ต้องสร้างใบรับรองให้ยุ่งยาก
นอกจากนี้คุณยังสามารถใช้Amazon API เกตเวย์ วางแอปพลิเคชันของคุณไว้หลัง API Gateway โปรดตรวจสอบคำถามที่พบบ่อยนี้
ใช้Elastic Load Balacingรองรับการสิ้นสุด SSL ที่ Load Balancer รวมถึงการถอดการถอดรหัส SSL จากอินสแตนซ์ของแอปพลิเคชันและการจัดการใบรับรอง SSL แบบรวมศูนย์
หนึ่งในแหล่งข้อมูลที่ดีที่สุดที่ฉันพบคือการใช้การเข้ารหัสคุณไม่จำเป็นต้องใช้ ELB หรือ cloudfront เพื่อให้อินสแตนซ์ EC2 ของคุณมี HTTPS เพียงทำตามคำแนะนำง่ายๆต่อไปนี้: มาเข้ารหัส ล็อกอินเข้าสู่เซิร์ฟเวอร์ของคุณแล้วทำตามขั้นตอนในลิงค์
นอกจากนี้ยังมีความสำคัญตามที่ผู้อื่นกล่าวไว้ว่าคุณได้เปิดพอร์ต 443 โดยการแก้ไขกลุ่มความปลอดภัยของคุณ
คุณสามารถดูใบรับรองของคุณหรือเว็บไซต์อื่น ๆ ได้โดยเปลี่ยนชื่อไซต์ในลิงค์นี้
โปรดอย่าลืมว่าใช้ได้ 90 วันเท่านั้น