Amazon EC2에서 HTTPS 설정


답변:


78

먼저 HTTPS 포트 (443)를 열어야합니다. 이를 위해 https://console.aws.amazon.com/ec2/ 로 이동 Security Groups하여 왼쪽 의 링크를 클릭 한 다음 HTTPS도 사용할 수있는 새 보안 그룹을 생성합니다. 그런 다음 실행중인 인스턴스의 보안 그룹을 업데이트하거나 해당 그룹을 사용하여 새 인스턴스를 만듭니다.

이 단계가 끝나면 EC2 작업이 완료되고 모든 것이 애플리케이션 문제입니다.


15
인스턴스에서 사용하는 보안 그룹에 포트 443에 대한 새 규칙을 추가 할 수 있었고 재부팅하지 않고도 작동하기 시작했습니다.
Dmitry Efimenko 2013 년

9
you can't change a security group of a running instance, even rebooting-이 답변이 게시 된 이후로이 제한이 제거 된 것 같습니다.
Yuriy Nakonechnyy 2014

11
보안 그룹을 변경할 필요는 없습니다.Edit inbound rules
Khoi

8
@ nikhil84 보안 그룹에 HTTPS를 추가하여 1 단계 인 머신에서 포트 443 만 열었습니다. 둘째, 기본 HTTP 포트 80 대신 443 포트를 수신하고 HTTPS 트래픽을 허용하도록 해당 머신에서 서버를 설정해야합니다. 어떤 서버를 사용하십니까?
Yuriy Nakonechnyy

4
@ nikhil84 여기에 나열된 지침을 따르십시오 digitalocean.com/community/tutorials/... 설정에서 https를 아파치 HTTPD에
YURIY Nakonechnyy

40

이 답변은 다른 사이트 (GoDaddy)에서 도메인을 구입하고 인증서 관리자와 함께 Amazon 무료 인증서를 사용하려는 사람에게 초점을 맞추고 있습니다.

이 답변은 Amazon Classic Load Balancer (유료) 를 사용합니다. 사용하기 전에 요금을 확인하십시오.


1 단계 -인증서 관리자로 인증서 요청

인증서 관리자> 인증서 요청> 공용 인증서 요청으로 이동합니다.

도메인 이름에서 추가 myprojectdomainname.com하고 *.myprojectdomainname.com다음으로 이동합니다.

이메일 확인을 선택하고 확인 및 요청

(도메인을 구입 한 이메일 계정에서)받은 이메일을 열고 요청을 앞 당깁니다.

의 검증 상태 경우이 후, 확인 myprojectdomainname.com*.myprojectdomainname.com성공 당신이 2 단계로 계속 성공 인 경우,

2 단계 -로드 밸런서에 대한 보안 그룹 생성

EC2에서 보안 그룹> 보안 그룹 생성으로 이동하여 http 및 https 인바운드를 추가합니다.

다음과 같습니다. 여기에 이미지 설명 입력

3 단계 -로드 밸런서 생성

EC2>로드 밸런서>로드 밸런서 생성> Classic Load Balancer (세 번째 옵션)

내부에 LB 만들기-프로젝트의 vpc On Load Balancer 프로토콜에서 Http 및 Https 추가 여기에 이미지 설명 입력

다음> 기존 보안 그룹 선택

이전 단계에서 생성 한 보안 그룹을 선택합니다.

다음> ACM에서 인증서 선택

1 단계 인증서 선택

다음>

상태 확인에서 핑 경로 / (/index.html 대신 슬래시 하나)를 사용했습니다.

4 단계 -인스턴스를로드 밸런서의 보안 그룹과 연결

EC2> 인스턴스> 프로젝트 클릭> 작업> 네트워킹> 보안 그룹 변경

로드 밸런서의 보안 그룹 추가

5 단계

EC2>로드 밸런서> 생성 한로드 밸런서를 클릭하고> DNS 이름 (A 레코드)을 복사하면 다음과 같습니다. myproject-2021611191.us-east-1.elb.amazonaws.com

Route 53> Routes Zones> 도메인 이름 클릭> 레코드 세트로 이동 (여기에 도메인이없는 경우 Domain Name: myprojectdomainname.com및을 사용하여 호스팅 영역 생성 Type: Public Hosted Zone)

레코드 유형 A (아마도 아님) 가 있는지 확인하고 , 이름이 비어있는 레코드 세트를 생성 / 편집하고, A를 입력하고, 예를 입력하고, 복사 한 DNS를 대상으로 지정합니다.

유형 A , 이름 *.myprojectdomainname.com, 별칭 예의 새 레코드 세트를 만들고 도메인을 대상으로 지정 (myprojectdomainname.com)합니다. 이렇게하면 www.myprojectdomainname.com 및 subsite.myprojectdomainname.com으로 사이트에 액세스 할 수 있습니다. 참고 : 이렇게하려면 역방향 프록시 (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 퍼블릭 IP도 복사합니다.

6 단계

도메인을 구입 한 도메인 등록 사이트 (제 경우에는 GoDaddy)

라우팅을로 변경하고 http : <Your IPv4 Public IP Number>마스킹으로 전달을 선택합니다.

NS (이름 서버)를 복사 한 4 개의 NS로 변경합니다. 적용되는 데 48 시간이 걸릴 수 있습니다.


https를 원하면로드 밸런서를 사용해야합니까?
Curtis

나는이 모든 것을했지만 내가 브라우저에서 내 도메인을 쳤을 때 나는 ERR_CONNECTION_TIMED_OUT를 얻을
커티스

1
포트 80에서 새 대상 그룹으로로드 밸런서를 만든 다음 포트 80을 사용하도록 리스너를 편집해야했습니다. 지금 작동합니다. 감사.
Curtis

1
@Curtis로드 밸런서는 https를 사용하는 유일한 옵션이 아닙니다. 또한 EC2
DigaoParceiro

@DigaoParceiro 5 단계에서 DNS 이름을 복사하여 무엇을 했습니까?
Prashant

9

Amazon EC2 인스턴스는 가상 머신 일 뿐이므로 모든 서버에서 설정하는 것과 동일한 방식으로 SSL을 설정합니다.

어떤 플랫폼을 사용하고 있는지 언급하지 않으므로 더 많은 정보를 제공하기가 어렵습니다.


안녕하세요-T2.Micro Amazon Linux EC2 인스턴스를 실행하고 있습니다. 나는 node.js를 사용하여 서버를 유지하고 있습니다. 내 서버 스크립트에서 포트 443을 수신하고 있고 보안 그룹이 포트 443으로 구성되어 있습니다. HTTPS를 활성화하려면 그 밖에 무엇을해야합니까? 인증서가 필요 하죠? Elastic Beanstalk를 기반으로하지 않는이 작업에 대한 적절한 정보를 찾는 데 어려움이 있습니다.
Stephen Tetreault

2
@ SMT-letsencrypt.org 에서 무료 및 자동 갱신 인증서를 확인하십시오. 노드를 사용하여 설정하는 방법에 대한 많은 정보 (구글을 통해)가 있습니다. 수행해야 할 AWS / EC2 관련 기타 사항은 없습니다.
Geoff Appleford

2
답장을 보내 주셔서 감사합니다! 나는 실제로 다른 날에 작동하고 몇 단계를 간소화했습니다. 누군가 미래에서 이것을 읽고 있다면 : github.com/MSCHF/aws-ec2-node-npm-setup
Stephen Tetreault

5

오래된 질문이지만 답변에서 다른 옵션을 언급 할 가치가 있습니다. 도메인의 DNS 시스템이 Amazon Route 53에 정의 된 경우 EC2 앞에서 Amazon CloudFront 서비스를 사용하고 여기에 무료 Amazon SSL 인증서를 연결할 수 있습니다. 이렇게하면 콘텐츠 전송 속도를 높이고 HTTPS 프로토콜을 사용하여 도메인을 보호 할 수있는 CDN의 이점을 누릴 수 있습니다.


이를 달성하기위한 단계가 언급 된 참조 또는 블로그가 있습니까?
Saurabh Yadav

이 비디오에서 atiqur rahman은 amazon Certificate Manager를 사용하여 SSL 인증서를 가져온 다음 EC2 인스턴스로 클라우드 프런트를 구성합니다. 구성 http / 2가 자동으로 활성화 된 후.
Sachithra Dilshan


2

Elastic Load Balacing을 사용하면 애플리케이션 인스턴스에서 SSL 복호화를 오프로드하고 SSL 인증서의 중앙 집중식 관리를 제공하는 등로드 밸런서에서 SSL 종료를 지원합니다.


16
단순히 SSL을 제공하기 위해 ELB를 사용하는 것이 아니라 실제로는 오해의 소지가있는 대답입니다. 서버에서 SSL을 제공해야하므로로드 밸런서를 추가하는 것은 필요하지 않은 경우 추가 비용 일뿐입니다. 또한 소프트웨어에서 SSL 종료이므로로드 밸런서와 서버 사이의 SSL은 성능에 영향을 미치는 추가 단계입니다.
Thomas the Tank Engine

1
귀하의 의견에 동의합니다. 추가 비용이 추가되고 성능에 영향을 미칩니다. 서버의 부하와 관련하여 정확한 요구 사항을 알지 못하기 때문에 여전히 갈 길일 수 있습니다. 그러나 "서버가 SSL을 제공해야합니다"라는 귀하의 말을 이해하지 못합니다. 왜 이것이 필요합니까? 로드 밸런서는 SSL 오프 로딩도 포함합니다. 감사.
Peter Hulsen 2011 년

2
네, 사실입니다. 이를 사용하여 간단한 방식으로 SSL을 제공 할 수 있습니다. 나는 인스턴스에 사용자가 어떤 이유로 든 직접 액세스 할 수있는 퍼블릭 DNS 값이 여전히 있다고 생각하고 있습니다. 이 경우 SSL을 사용하도록 강제하고 싶을 수도 있습니다.
Thomas the Tank Engine

이 의견이 늦었다는 것을 알고 있지만 등록 된 도메인 이름을 사용하려면 ELB를 사용해야합니다. EC2 IP는 '비 영구적'으로 간주되어 SSL 인증서를 사용할 수 없기 때문입니다. 반면에 Amazon에서 제공하는 DNS를 사용하는 경우 ELB가 필요하지 않을 수 있으며 확인하지 않았습니다.
hexicle 2017-08-23


0

: 내가하자 암호화를 사용하고있는 최고의 자원 중 하나는, 당신은 다음과 같은 간단한 지시에 따라, HTTPS를 가지고 당신의 EC2 인스턴스에 대한 ELB도 CloudFront를 필요하지 않습니다 하자 암호화 서버에 로그인하고 링크의 단계를 따릅니다.

다른 사람들이 언급했듯이 보안 그룹을 편집하여 포트 443을 연 것도 중요합니다.

이 링크에서 사이트 이름을 변경하여 인증서 또는 다른 웹 사이트를 볼 수 있습니다.

90 일 동안 만 유효 함을 잊지 마십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.