Thiết lập HTTPS trong Amazon EC2


101

Làm cách nào để bật HTTPS trong Amazon EC2? Trang web của chúng tôi đang hoạt động trên HTTP.


câu hỏi hay, nhưng tôi đã đặt nhóm bảo mật và không có sự quyến rũ nào xảy ra
Shark Deng

Câu trả lời:


76

Đầu tiên, bạn cần mở cổng HTTPS (443). Để làm điều đó, bạn truy cập https://console.aws.amazon.com/ec2/ và nhấp vào Security Groupsliên kết bên trái, sau đó tạo một nhóm bảo mật mới có sẵn HTTPS. Sau đó, chỉ cần cập nhật nhóm bảo mật của một phiên bản đang chạy hoặc tạo một phiên bản mới bằng cách sử dụng nhóm đó.

Sau các bước này, công việc EC2 của bạn đã hoàn tất và tất cả chỉ là sự cố ứng dụng.


15
Tôi đã có thể thêm quy tắc mới cho cổng 443 vào Nhóm bảo mật được sử dụng bởi phiên bản và nó chỉ bắt đầu hoạt động mà thậm chí không cần khởi động lại.
Dmitry Efimenko

9
you can't change a security group of a running instance, even rebooting- Tôi nghĩ rằng giới hạn này đã bị loại bỏ kể từ khi câu trả lời này được đăng.
Yuriy Nakonechnyy

11
Bạn không cần thay đổi nhóm bảo mật, bạn có thểEdit inbound rules
Khoi

8
@ nikhil84 bằng cách thêm HTTPS trong nhóm bảo mật, bạn chỉ mở cổng 443 trên máy ở bước 1. Thứ hai, bạn cần thiết lập máy chủ của mình trên máy đó để lắng nghe cổng 443 (thay vì cổng HTTP mặc định 80) và chấp nhận lưu lượng HTTPS. Bạn sử dụng máy chủ nào?
Yuriy Nakonechnyy

4
@ nikhil84 vui lòng làm theo các hướng dẫn được liệt kê tại đây: digitalocean.com/community/tutorials/… để thiết lập https trên Apache HTTPD
Yuriy Nakonechnyy

40

Câu trả lời này tập trung vào những người mua miền ở một trang web khác (như GoDaddy) và muốn sử dụng chứng chỉ miễn phí của Amazon với Trình quản lý chứng chỉ

Câu trả lời này sử dụng Amazon Classic Load Balancer (trả phí), hãy xem giá trước khi sử dụng


Bước 1 - Yêu cầu chứng chỉ với Trình quản lý chứng chỉ

Đi tới Trình quản lý chứng chỉ> Yêu cầu chứng chỉ> Yêu cầu chứng chỉ công khai

Trên Tên miền, bạn sẽ thêm myprojectdomainname.com*.myprojectdomainname.comvà tiếp tục

Chọn xác thực Email và Xác nhận và Yêu cầu

Mở email bạn đã nhận được (trên tài khoản email mà bạn đã mua miền) và đáp ứng yêu cầu

Sau đó, kiểm tra xem tình trạng xác nhận của myprojectdomainname.com*.myprojectdomainname.comlà thành công, nếu là những thành công bạn có thể tiếp tục Bước 2

Bước 2 - Tạo nhóm bảo mật cho bộ cân bằng tải

Trên EC2, đi tới Nhóm bảo mật> và Tạo Nhóm bảo mật và thêm http và https vào

Nó sẽ giống như: nhập mô tả hình ảnh ở đây

Bước 3 - Tạo Cân bằng tải

EC2> Load Balancer> Create Load Balancer> Classic Load Balancer (Tùy chọn thứ ba)

Tạo LB bên trong - vpc của dự án của bạn Trên Giao thức cân bằng tải, thêm Http và Https nhập mô tả hình ảnh ở đây

Tiếp theo> Chọn thoát nhóm bảo mật

Chọn nhóm bảo mật mà bạn đã tạo ở bước trước

Tiếp theo> Chọn chứng chỉ từ ACM

Chọn chứng chỉ của bước 1

Tiếp theo>

trong phần Kiểm tra sức khỏe, tôi đã sử dụng đường dẫn ping / (một dấu gạch chéo thay vì /index.html)

Bước 4 - Liên kết phiên bản của bạn với nhóm bảo mật của trình cân bằng tải

EC2> Phiên bản> nhấp vào dự án của bạn> Hành động> Mạng> Thay đổi Nhóm bảo mật

Thêm Nhóm bảo mật của Bộ cân bằng tải của bạn

Bước 5

EC2> Load Balancer> Nhấp vào bộ cân bằng tải mà bạn đã tạo> sao chép Tên DNS (Bản ghi A), nó sẽ giống như myproject-2021611191.us-east-1.elb.amazonaws.com

Đi tới Tuyến đường 53> Khu vực tuyến đường> nhấp vào tên miền> Đi tới Bộ hồ sơ (Nếu bạn không có miền của mình ở đây, hãy tạo một khu vực được lưu trữ với Domain Name: myprojectdomainname.comType: Public Hosted Zone)

Kiểm tra xem bạn có loại bản ghi A (có thể không), tạo / chỉnh sửa tập hợp bản ghi với tên trống, loại A, bí danh Có và Nhắm mục tiêu dns mà bạn đã sao chép

Đồng thời tạo Tập bản ghi mới gồm loại A , tên *.myprojectdomainname.com, bí danh Có và Nhắm mục tiêu miền của bạn (myprojectdomainname.com). Điều này sẽ giúp bạn có thể truy cập trang web của bạn với www.myprojectdomainname.com và subsite.myprojectdomainname.com. Lưu ý: Bạn sẽ cần phải định cấu hình proxy ngược của mình (Nginx / Apache) để làm như vậy.

Trên NS sao chép 4 giá trị Máy chủ Tên để sử dụng trong Bước tiếp theo, nó sẽ giống như sau:

ns-362.awsdns-45.com ns-1558.awsdns-02.co.uk ns-737.awsdns-28.net ns-1522.awsdns-62.org

Đi tới EC2> Phiên bản> Và sao chép IP Công khai IPv4 nữa

Bước 6

Trên trang web đăng ký miền mà bạn đã mua miền (trong trường hợp của tôi là GoDaddy)

Thay đổi định tuyến thành http : <Your IPv4 Public IP Number>và chọn Chuyển tiếp với che

Thay đổi Máy chủ Định danh (NS) thành 4 NS mà bạn đã sao chép, điều này có thể mất 48 giờ để có hiệu lực


Tôi có phải sử dụng bộ cân bằng tải nếu tôi muốn https không?
Curtis

Tôi đã làm tất cả những điều này nhưng tôi nhận được ERR_CONNECTION_TIMED_OUT khi truy cập miền của mình trong một trình duyệt
Curtis

1
Tôi cần tạo bộ cân bằng tải với Nhóm mục tiêu mới trên cổng 80, sau đó chỉnh sửa bộ lắng nghe để sử dụng cổng 80. Hiện hoạt động. Cảm ơn.
Curtis

1
@Curtis Load balancer không phải là tùy chọn duy nhất để sử dụng https, bạn cũng có thể định cấu hình "cho phép mã hóa" bên trong EC2 của mình
DigaoParceiro

@DigaoParceiro bạn đã làm gì với bước 5. tên DNS đã sao chép?
Prashant

9

Các phiên bản Amazon EC2 chỉ là máy ảo nên bạn sẽ thiết lập SSL giống như cách bạn thiết lập nó trên bất kỳ máy chủ nào.

Bạn không đề cập đến nền tảng bạn đang sử dụng, vì vậy rất khó để cung cấp thêm bất kỳ thông tin nào.


Xin chào - Tôi đang chạy phiên bản T2.Micro Amazon Linux EC2. Tôi đang sử dụng node.js để hỗ trợ máy chủ. Tôi đang nghe cổng 443 trong tập lệnh máy chủ của mình và nhóm bảo mật của tôi được định cấu hình cho cổng 443. Tôi phải làm gì khác để bật HTTPS? Tôi cần một chứng chỉ, phải không? Gặp khó khăn khi tìm kiếm thông tin phù hợp về việc này KHÔNG dựa trên Elastic Beanstalk.
Stephen Tetreault

2
@SMT - hãy xem letsencrypt.org để biết các chứng chỉ miễn phí và tự động gia hạn. Có rất nhiều thông tin (thông qua google) về cách thiết lập nó bằng cách sử dụng nút. Không có gì khác AWS / EC2 cụ thể mà bạn cần làm.
Geoff Appleford

2
Cảm ơn vi đa trả lơi! Tôi thực sự đã làm cho nó hoạt động vào ngày hôm trước và đã sắp xếp hợp lý một số bước. Nếu bất cứ ai đang đọc bài viết này từ tương lai: github.com/MSCHF/aws-ec2-node-npm-setup
Stephen Tetreault

5

Một câu hỏi cũ nhưng đáng nói là một lựa chọn khác trong các câu trả lời. Trong trường hợp hệ thống DNS của miền của bạn đã được xác định trong Amazon Route 53, bạn có thể sử dụng dịch vụ Amazon CloudFront trước EC2 của mình và đính kèm chứng chỉ Amazon SSL miễn phí vào đó. Bằng cách này, bạn sẽ được hưởng lợi từ việc có CDN để phân phối nội dung nhanh hơn và cũng đảm bảo miền của bạn với giao thức HTTPS.


Có tài liệu tham khảo hoặc blog nào đề cập đến các bước để đạt được điều này không?
Saurabh Yadav

trong video này atiqur rahman nhận chứng chỉ ssl bằng trình quản lý chứng chỉ amazon và sau đó anh ấy định cấu hình mặt trước đám mây với phiên bản EC2. Sau khi cấu hình http / 2 được bật tự động.
Sachithra Dilshan


2

Sử dụng Elastic Load Balacing , nó hỗ trợ kết thúc SSL tại Load Balancer, bao gồm giảm tải giải mã SSL từ các phiên bản ứng dụng và cung cấp quản lý tập trung chứng chỉ SSL.


15
Bạn không sử dụng ELB đơn giản để cung cấp SSL, đó thực sự là một câu trả lời khá sai lầm. Máy chủ của bạn cần cung cấp SSL bất kể, vì vậy việc thêm bộ cân bằng tải chỉ là chi phí bổ sung nếu bạn không cần. Đó cũng là kết thúc SSL trong phần mềm, vì vậy SSL giữa bộ cân bằng tải và (các) máy chủ là một bước bổ sung, ảnh hưởng đến hiệu suất.
Thomas the Tank Engine

1
Tôi đồng ý với nhận xét của bạn. Nó sẽ làm tăng thêm chi phí và ảnh hưởng đến hiệu suất. Chúng tôi không biết yêu cầu chính xác của họ đối với tải trên máy chủ của họ, vì vậy vẫn có thể là một cách để thực hiện. Nhưng tôi không hiểu nhận xét của bạn "Máy chủ của bạn cần cung cấp SSL bất chấp", tại sao lại cần điều này? Bộ cân bằng tải cũng bao gồm SSL giảm tải. Cảm ơn.
Peter Hulsen

2
Vâng đúng. Bạn có thể sử dụng nó để cung cấp SSL một cách đơn giản. Tôi chỉ nghĩ rằng các phiên bản vẫn có các giá trị DNS công khai nơi người dùng có thể truy cập trực tiếp vào chúng vì bất kỳ lý do gì. Nếu điều đó xảy ra, có thể bạn cũng muốn buộc người đó sử dụng SSL.
Thomas the Tank Engine

Tôi biết nhận xét này là muộn, nhưng theo hiểu biết của tôi, nếu bạn muốn sử dụng tên miền đã đăng ký, thì bạn phải sử dụng ELB, vì IP EC2 được coi là 'không vĩnh viễn' và do đó không thể sử dụng chứng chỉ SSL của bạn. Mặt khác, nếu bạn chỉ đang sử dụng DNS do Amazon cung cấp, thì có lẽ nó không cần ELB, tôi chưa kiểm tra.
hexicle


0

Một trong những tài nguyên tốt nhất mà tôi tìm thấy đang sử dụng hãy mã hóa, bạn không cần ELB cũng như mặt tiền đám mây cho phiên bản EC2 của mình để có HTTPS, chỉ cần làm theo hướng dẫn đơn giản sau: hãy mã hóa Đăng nhập vào máy chủ của bạn và làm theo các bước trong liên kết.

Điều quan trọng như những người khác đã đề cập là bạn đã mở cổng 443 bằng cách chỉnh sửa các nhóm bảo mật của mình

Bạn có thể xem chứng chỉ của mình hoặc bất kỳ trang web nào khác bằng cách thay đổi tên trang web trong liên kết này

Xin đừng quên rằng nó chỉ có giá trị trong 90 ngày

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.