วิธีเพิ่มใบรับรอง SSL ใน AWS EC2 ด้วยความช่วยเหลือของบริการ AWS Certificate Manager ใหม่


91

AWS ได้เกิดขึ้นกับบริการใหม่AWS จัดการใบรับรอง สิ่งหนึ่งที่ฉันได้รับจากคำอธิบายคือหากเราใช้บริการนี้เราไม่ต้องจ่ายค่าใบรับรองอีกต่อไป

พวกเขากำลังให้ใบรับรองสำหรับ Elastic Load Balancer (ELB) และ CloudFront แต่ฉันไม่พบ EC2 ที่ไหนเลย

มีวิธีใดบ้างในการใช้ใบรับรองกับ EC2?


1
คุณสามารถดูที่allowencrypt.orgเพื่อรับใบรับรองฟรีและเชื่อถือได้โดยมีผู้ร่วมให้ข้อมูลเช่น chrome และ facebook ดูดีทีเดียว
Tom


1
โอ๊ยฉันไม่รู้เรื่องนี้ อย่างไรก็ตามฉันคิดว่าพวกเขามีสิทธิ์ที่จะไม่อนุญาตสิ่งนี้ คุณสามารถสร้างนามแฝงบนโดเมนอื่นได้หรือไม่ (เช่นผ่าน Route53) และไม่ใช้ชื่อ dns เริ่มต้นที่ให้ไว้
ทอม

ฉันเพิ่งเจอวิดีโอเมื่อ [เมษายน - 2020] ที่พวกเขาสร้างใบรับรอง SSL \ TLS ด้วย AWS Certificate Manager แล้ววางลงในอินสแตนซ์ EC2 หลังตัวจัดสรรภาระงาน youtu.be/bWPTq8z1vFYมันมีประโยชน์จริงๆ
nktsamba

คำตอบ:


110

ถาม: ฉันสามารถใช้ใบรับรองในอินสแตนซ์ Amazon EC2 หรือบนเซิร์ฟเวอร์ของฉันเองได้หรือไม่

ไม่ในขณะนี้ใบรับรองที่ ACM ให้มาสามารถใช้ได้กับบริการ AWS บางอย่างเท่านั้น


ถาม: บริการของ AWS ใดบ้างที่ฉันสามารถใช้ใบรับรองที่ ACM ให้มาได้

คุณสามารถใช้ ACM กับบริการ AWS ต่อไปนี้:

•ยืดหยุ่นโหลดบาลานซ์

• Amazon CloudFront

• AWS Elastic Beanstalk

• Amazon API Gateway

https://aws.amazon.com/certificate-manager/faqs/

คุณไม่สามารถติดตั้งใบรับรองที่สร้างโดยAmazon Certificate Manager (ACM)บนทรัพยากรที่คุณมีสิทธิ์เข้าถึงระดับต่ำโดยตรงเช่น EC2 หรือเซิร์ฟเวอร์ภายนอก AWS เนื่องจากคุณไม่ได้รับสิทธิ์ในการเข้าถึงคีย์ส่วนตัว ใบรับรองเหล่านี้สามารถใช้งานได้กับทรัพยากรที่จัดการโดยโครงสร้างพื้นฐาน AWS - ELB และ CloudFront เท่านั้นเนื่องจากโครงสร้างพื้นฐาน AWS เก็บสำเนาคีย์ส่วนตัวเพียงชุดเดียวสำหรับใบรับรองที่สร้างขึ้นและรักษาไว้ภายใต้การรักษาความปลอดภัยที่เข้มงวดด้วยการควบคุมการเข้าถึงภายในที่ตรวจสอบได้ .

คุณจะต้องให้เครื่อง EC2 ของคุณฟังอยู่เบื้องหลัง CloudFront หรือ ELB (หรือทั้งสองแบบเรียงซ้อนกันก็ใช้ได้เช่นกัน) เพื่อใช้ใบรับรองเหล่านี้สำหรับเนื้อหาที่มาจาก EC2 ... .


13
ข่าวดีก็คือไม่มีค่าใช้จ่ายหากคุณออกใบรับรองและเพิ่งพบว่าคุณไม่สามารถติดตั้งได้ที่นี่
kraftydevil

1
lol @kraftydevil ฉันเดาว่าคุณมีประเด็นตรงนั้น โปรดทราบว่าallowencrypt.orgเป็นแหล่งที่มาที่ถูกต้องได้รับการยอมรับและไม่แสวงหาผลกำไรสำหรับใบรับรอง SSL ฟรีที่คุณสามารถติดตั้งได้ทุกที่ที่คุณต้องการ (และฉันอาจเพิ่มฉันไม่มีส่วนเกี่ยวข้องกับ Let's Encrypt)
Michael - sqlbot

6
@EngineerDollery no นั่นเป็นความจริงสำหรับกรณีเฉพาะเท่านั้น คุณสามารถใช้ Let's Encrypt บน EC2 ได้อย่างแน่นอน สิ่งที่คุณไม่สามารถทำได้คือรับใบรับรอง Let's Encrypt สำหรับ*.amazonaws.comชื่อโฮสต์EC2 เนื่องจากนโยบาย Let's Encrypt ไม่อนุญาต ... แต่สำหรับโดเมนที่คุณควบคุมนั้นชี้ไปที่ IP อินสแตนซ์ EC2 หรือ ELB หรือ CloudFront คุณสามารถใช้ Let's Encrypt ได้เช่นเดียวกับที่อื่น ๆ
Michael - sqlbot

2
ลิงก์ไปยังตัวอย่างที่มีใบรับรองอัตโนมัติช่วยให้เข้ารหัสที่ติดตั้งบน EC2: docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
Efren

ฉันตามด้วยการตั้งค่า ELB ทุกอย่างตอนนี้ฉันได้รับ 502 Bad Gateway เมื่อฉันชี้บันทึก A ไปที่ ELB
MuaathAli

2

ไม่คุณไม่สามารถใช้ตัวจัดการใบรับรอง aws เพื่อปรับใช้ใบรับรองบน ​​EC2 ใบรับรองตัวจัดการใบรับรองสามารถปรับใช้กับระบบคลาวด์ฟรอนต์และตัวจัดสรรภาระงานแบบยืดหยุ่นเท่านั้น Inoredr เพื่อใช้บน ec2 คุณต้องวาง elb ไว้ด้านบนของ ec2 ดังนั้นคำขอจากไคลเอนต์ไปยังตัวโหลดบาลานเซอร์จะได้รับการป้องกัน https และจากเว็บเซิร์ฟเวอร์ elb ถึง ec2 จะอยู่บน http


1

หากคุณใช้ AWS ACM Cert เพื่อวัตถุประสงค์ภายในเท่านั้นคุณอาจใช้ AWS ACM Private CA เพื่อออกใบรับรอง (ฉันคิดว่าคุณสามารถใช้เพื่อวัตถุประสงค์ในการรับส่งข้อมูลสาธารณะ / ภายนอกได้เช่นกันหาก root CA ของคุณเป็น CA ที่เชื่อถือได้แบบสาธารณะ)

https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaGetStarted.html

ในระหว่างการเริ่มต้น Application / EC2 / Container ให้ตั้งค่าขั้นตอนในการส่งออกใบรับรอง / คีย์ส่วนตัวของ ACM Private CA ของคุณไปยังปลายทางของคุณและเริ่มต้นการอ้างอิงสำหรับการรับส่งข้อมูล

https://docs.aws.amazon.com/cli/latest/reference/acm/export-certificate.html

สิ่งที่ดีอย่างหนึ่งคือคุณสามารถควบคุมได้ว่าใครสามารถเรียกคุณสมบัติใบรับรองการส่งออกโดยใช้บทบาท IAM ดังนั้นทุกคนจึงไม่สามารถดาวน์โหลดคีย์ส่วนตัวของใบรับรองได้

ข้อเสียอย่างหนึ่งคือ CA ส่วนตัวคือบริการ AWS ที่มีราคาแพง ($ 400 / เดือน) https://aws.amazon.com/certificate-manager/pricing/


คุณไม่สามารถใช้ใบรับรองการส่งออกกับ ACM PCA - แต่คุณไม่จำเป็นต้องใช้เช่นกัน: คุณมีคีย์ส่วนตัวอยู่แล้วและ get-certificate จะให้ใบรับรองและ chain แก่ uit
Willaert ฟรี

@FreeWillaert ฉันค่อนข้างแน่ใจว่าคุณจะไม่ได้รับส่วนคีย์ส่วนตัวพร้อมใบรับรอง ตรวจสอบเอกสาร CLI นี้ และนี้ ตรวจสอบผลลัพธ์ทั้งสองของการตอบสนอง cli ฉันได้ทดสอบคำสั่ง CLI เหล่านี้แล้ว
Imran

@FreeWillaert ครับ :). คำสั่งด้านบน CLI สามารถใช้ในสคริปต์เริ่มต้นของ Docker หรือสคริปต์ข้อมูลผู้ใช้ EC2 เพื่อดาวน์โหลดใบรับรองคีย์ส่วนตัวในรันไทม์และเริ่มใช้เพื่อให้บริการทราฟฟิก TLS พิเศษใน ASG ส่วนที่ดีคือคุณสามารถควบคุมได้ว่าใครสามารถโทรเหนือคำสั่ง CLI โดยใช้บทบาท IAM ดังนั้นทุกคนจึงไม่สามารถเข้าถึงคีย์ส่วนตัวได้
Imran

1
@Imran คุณควรเขียนตัวหนาOne downside with this is, private CA is expensive AWS service($400/month).ไว้ด้านบนเช่นฉันจะพลาดถ้าฉันไม่ได้อ่านคำตอบนี้ครั้งที่ 2
Piekarski D

@PiekarskiD เสร็จแล้ว. ขอบคุณสำหรับคำแนะนำ !!. ถ้าคุณชอบคำตอบของฉันคุณสามารถโหวตได้ตลอดเวลา !!.
Imran

0

เมื่อเพิ่มความคิดเห็นด้านบนคุณไม่สามารถใช้ AWS Certificate Manager สำหรับสิ่งนี้ แต่คุณสามารถเพิ่มใบรับรอง Let's Encrypt ไปยัง ec2 บนเซิร์ฟเวอร์ Windows ที่ใช้ IIS ได้และมันค่อนข้างง่าย:

  1. เชื่อมโยง Elastic ip กับอินสแตนซ์ ec2 ของคุณ

  2. ตรวจสอบว่าคุณมีโดเมนที่จดทะเบียนแล้ว คุณไม่สามารถใช้ ec2----------.us-east-1.compute.amazonaws.com พิมพ์ชื่อที่มาพร้อมกับอินสแตนซ์ของคุณ

  3. ผ่านการตั้งค่า DNS ของผู้ให้บริการโดเมนของคุณให้โดเมนของคุณชี้ไปที่ Elastic IP ของคุณ

  4. เชื่อมต่อกับอินสแตนซ์ ec2 ของคุณและเพิ่มชื่อโดเมนของคุณในการผูกไซต์

  5. ไปที่https://github.com/PKISharp/win-acme/releases

  6. ดูในเนื้อหาและใช้เวอร์ชันล่าสุด (เช่น win-acme.v2.0.10.444.zip) นี่คือโฟลเดอร์เนื้อหาเดียวที่คุณต้องการ

  7. คลายซิปโฟลเดอร์เปิดเทอร์มินัลในฐานะผู้ดูแลระบบและซีดีลงในโฟลเดอร์ที่คลายซิป

  8. เรียกใช้ wacs.exe แล้วทำตามคำแนะนำ

  9. ตรวจสอบให้แน่ใจว่ากลุ่มความปลอดภัยที่กำหนดให้กับอินสแตนซ์ของคุณอนุญาตการรับส่งข้อมูล (อย่างน้อยที่สุดคือ IP ของคุณเอง) ผ่านพอร์ต HTTPS ที่คุณเลือกใน IIS นี่คือพอร์ต 443 โดยค่าเริ่มต้น

ฉันพบว่าลิงก์ด้านล่างมีประโยชน์เมื่อฉันกำลังหาข้อมูลนี้ นี่คือวิดีโอที่ใช้รุ่นก่อนหน้าหากคุณต้องการความช่วยเหลือเพิ่มเติม แต่ก็เป็นแนวคิดเดียวกัน

https://www.youtube.com/watch?v=fq5OUOjumuM

นอกจากนี้บทความนี้อาจเป็นประโยชน์:

https://weblog.west-wind.com/posts/2016/feb/22/using-lets-encrypt-with-iis-on-windows

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