Cách thêm chứng chỉ SSL vào AWS EC2 với sự trợ giúp của dịch vụ Trình quản lý chứng chỉ AWS mới


91

AWS đã đưa ra một dịch vụ mới Trình quản lý chứng chỉ AWS . Một điều tôi nhận được từ mô tả là nếu chúng tôi đang sử dụng dịch vụ này, chúng tôi không phải trả tiền cho chứng chỉ nữa.

Họ đang cung cấp chứng chỉ cho Elastic Load Balancer (ELB) và CloudFront, nhưng tôi không tìm thấy EC2 ở đâu.

Có cách nào để sử dụng chứng chỉ với EC2 không?


1
bạn có thể có một cái nhìn tại letsencrypt.org cho giấy chứng nhận miễn phí và đáng tin cậy, có đóng góp như chrome và Facebook có vẻ khá tốt
Tom


1
Ow Tôi không biết về điều này. Tuy nhiên tôi nghĩ rằng họ đúng khi không cho phép điều này. Bạn có thể tạo bí danh trên một miền khác (thông qua Route53 chẳng hạn) và không sử dụng tên aws dns mặc định được cung cấp?
Tom

Gần đây tôi đã xem một video [tháng 4 - 2020] trong đó họ tạo chứng chỉ SSL \ TLS bằng Trình quản lý chứng chỉ AWS và sau đó đưa nó vào Phiên bản EC2 đằng sau bộ cân bằng tải. youtu.be/bWPTq8z1vFY Nó thực sự hữu ích.
nktsamba

Câu trả lời:


109

H: Tôi có thể sử dụng chứng chỉ trên các phiên bản Amazon EC2 hoặc trên máy chủ của riêng mình không?

Không. Hiện tại, các chứng chỉ do ACM cung cấp chỉ có thể được sử dụng với các dịch vụ AWS cụ thể.


H: Tôi có thể sử dụng các chứng chỉ do ACM cung cấp với các dịch vụ AWS nào?

Bạn có thể sử dụng ACM với các dịch vụ AWS sau:

• Cân bằng tải đàn hồi

• Amazon CloudFront

• AWS Elastic Beanstalk

• Cổng API Amazon

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

Bạn không thể cài đặt các chứng chỉ được tạo bởi Amazon Certificate Manager (ACM) trên các tài nguyên mà bạn có quyền truy cập trực tiếp cấp thấp, như EC2 hoặc các máy chủ bên ngoài AWS, vì bạn không được cung cấp quyền truy cập vào các khóa riêng tư. Các chứng chỉ này chỉ có thể được triển khai trên các tài nguyên được quản lý bởi cơ sở hạ tầng AWS - ELB và CloudFront - vì cơ sở hạ tầng AWS giữ các bản sao duy nhất của khóa riêng cho các chứng chỉ mà nó tạo ra và duy trì chúng trong điều kiện bảo mật chặt chẽ với các kiểm soát truy cập nội bộ có thể kiểm tra được .

Bạn phải có các máy EC2 của mình nghe sau CloudFront hoặc ELB (hoặc cả hai, được xếp tầng, cũng sẽ hoạt động) để sử dụng các chứng chỉ này cho nội dung đến từ EC2 ... bởi vì bạn không thể cài đặt các chứng chỉ này trực tiếp trên các máy EC2 .


11
Tin tốt là bạn không phải trả phí nếu bạn đã cấp chứng chỉ và chỉ phát hiện ra rằng bạn không thể cài đặt nó ở đây.
kraftydevil

1
lol @kraftydevil Tôi đoán bạn có lý, ở đó. Lưu ý rằng letsencrypt.org là một nguồn phi lợi nhuận hợp pháp, được công nhận và cung cấp chứng chỉ SSL miễn phí mà bạn có thể cài đặt ở bất kỳ đâu bạn muốn. (Và, tôi có thể thêm, tôi không có liên kết với Hãy Encrypt.)
Michael - sqlbot

6
@EngineerDollery không, điều đó chỉ đúng với một trường hợp cụ thể. Bạn hoàn toàn có thể sử dụng Let's Encrypt trên EC2. Những gì bạn không thể làm là lấy chứng chỉ Let's Encrypt cho *.amazonaws.comtên máy chủ EC2 bởi vì, hợp lý, chính sách Let's Encrypt không cho phép điều đó ... nhưng đối với miền bạn kiểm soát trỏ đến IP phiên bản EC2, hoặc ELB hoặc CloudFront, chắc chắn bạn có thể sử dụng Let's Encrypt, giống như bất kỳ nơi nào khác.
Michael - sqlbot

2
Liên kết đến một ví dụ với chứng chỉ cho phép tự động mã hóa được triển khai trên EC2: docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
Efren

Tôi đi theo với các thiết lập tất cả mọi thứ ELB bây giờ tôi nhận được 502 Bad Cổng khi tôi chỉ Một kỷ lục với ELB
MuaathAli

2

Không, bạn không thể sử dụng trình quản lý chứng chỉ aws để triển khai chứng chỉ trên EC2. Chứng chỉ của trình quản lý chứng chỉ chỉ có thể được triển khai dựa trên đám mây và bộ cân bằng tải đàn hồi. Inoredr để sử dụng nó trên ec2, bạn cần đặt elb lên trên ec2, để yêu cầu từ máy khách đến bộ cân bằng tải sẽ được bảo vệ https và từ máy chủ web elb đến ec2 sẽ ở trên http.


1

Nếu bạn đang sử dụng AWS ACM Cert chỉ cho mục đích nội bộ thì bạn có thể sử dụng AWS ACM Private CA để cấp chứng chỉ. (Tôi nghĩ bạn có thể sử dụng nó cho mục đích lưu lượng truy cập công khai / bên ngoài cũng như nếu CA gốc của bạn là CA đáng tin cậy công khai).

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

Trong quá trình khởi động Ứng dụng / EC2 / Vùng chứa, hãy đặt một bước để xuất Cert / Khoá Cá nhân được cấp ACM Private CA của bạn đến đích của bạn và bắt đầu tham chiếu nó để phân phát lưu lượng.

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

Một điều tốt là bạn có thể kiểm soát ai có thể gọi tính năng chứng chỉ xuất khẩu bằng cách sử dụng Vai trò IAM để không phải ai cũng có thể tải xuống khóa riêng của chứng chỉ.

Một nhược điểm của điều này là, private CA là dịch vụ AWS đắt tiền ($ 400 / tháng). https://aws.amazon.com/certificate-manager/pricing/


Bạn không thể sử dụng export-certificate với ACM PCA - nhưng bạn cũng không cần nó: bạn sẽ có khóa cá nhân và get-certificate cung cấp cho bạn chứng chỉ và chuỗi.
Willaert miễn phí

@FreeWillaert Tôi khá chắc chắn rằng bạn sẽ không nhận được phần Private Key với get-certificate. kiểm tra tài liệu CLI này . và cái này . Kiểm tra cả hai kết quả đầu ra của phản hồi cli. Tôi đã thử nghiệm các lệnh CLI này.
Imran

@FreeWillaert vâng :). Lệnh CLI ở trên có thể được sử dụng trong tập lệnh khởi động Docker hoặc tập lệnh dữ liệu người dùng EC2 để tải xuống chứng chỉ khóa cá nhân trong thời gian chạy và bắt đầu sử dụng chúng để phục vụ lưu lượng truy cập TLS. Đặc biệt trong ASG. Phần tốt là bạn có thể kiểm soát ai có thể gọi lệnh CLI ở trên bằng cách sử dụng vai trò IAM để không phải ai cũng có quyền truy cập vào khóa riêng.
Imran

1
@Imran bạn nên viết đậm One downside with this is, private CA is expensive AWS service($400/month).ở trên cùng vì ví dụ như tôi sẽ bỏ lỡ nếu không đọc câu trả lời này lần thứ 2
Piekarski D

@PiekarskiD xong. Cám ơn vì sự gợi ý!!. nếu bạn thích câu trả lời của tôi, bạn có thể ủng hộ luôn !!.
Imran

0

Thêm vào các nhận xét ở trên, bạn không thể sử dụng Trình quản lý chứng chỉ AWS cho việc này, nhưng bạn có thể thêm chứng chỉ Let's Encrypt vào ec2 trên máy chủ Windows chạy IIS và việc này khá dễ dàng:

  1. Liên kết một ip đàn hồi với phiên bản ec2 của bạn.

  2. Đảm bảo rằng bạn có một miền đã đăng ký. Bạn không thể sử dụng tên loại ec2----------.us-east-1.compute.amazonaws.com đi kèm với phiên bản của bạn.

  3. Thông qua cài đặt DNS của nhà cung cấp miền của bạn, miền của bạn trỏ đến IP đàn hồi của bạn.

  4. Kết nối với phiên bản ec2 của bạn và thêm tên miền của bạn vào các ràng buộc của trang web.

  5. Tới https://github.com/PKISharp/win-acme/releases

  6. Xem phần nội dung và sử dụng phiên bản mới nhất (ví dụ: win-acme.v2.0.10.444.zip). Đây là thư mục nội dung duy nhất mà bạn cần.

  7. Giải nén thư mục, mở thiết bị đầu cuối với tư cách quản trị viên và cd vào thư mục đã giải nén.

  8. Chạy wacs.exe và làm theo lời nhắc.

  9. Đảm bảo rằng nhóm bảo mật được chỉ định cho phiên bản của bạn cho phép lưu lượng truy cập (ít nhất là IP của riêng bạn) qua cổng HTTPS bạn đã chọn trong IIS; đây là cổng 443 theo mặc định.

Tôi thấy các liên kết dưới đây hữu ích khi tôi tìm ra điều này. Đây là video sử dụng bản phát hành trước đó nếu bạn cần thêm trợ giúp, nhưng đó là cùng một ý tưởng.

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

Ngoài ra bài viết này có thể hữu ích:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.