[amazon-web-services] 새로운 AWS Certificate Manager 서비스를 사용하여 SSL 인증서를 AWS EC2에 추가하는 방법

AWS는 새로운 서비스 AWS Certificate Manager를 내놓았 습니다 . 설명에서 얻은 한 가지는이 서비스를 사용하는 경우 더 이상 인증서 비용을 지불 할 필요가 없다는 것입니다.

Elastic Load Balancer (ELB) 및 CloudFront에 대한 인증서를 제공하고 있지만 EC2를 어디서도 찾지 못했습니다.

EC2에서 인증서를 사용할 수있는 방법이 있습니까?



답변

Q : Amazon EC2 인스턴스 또는 자체 서버에서 인증서를 사용할 수 있습니까?

아니요. 현재 ACM에서 제공하는 인증서는 특정 AWS 서비스에서만 사용할 수 있습니다.


Q : ACM에서 제공하는 인증서를 사용할 수있는 AWS 서비스는 무엇입니까?

다음 AWS 서비스에서 ACM을 사용할 수 있습니다.

• Elastic Load Balancing

• 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 에서 오는 콘텐츠에 이러한 인증서를 사용하려면 EC2 머신이 CloudFront 또는 ELB 뒤에서 수신 대기 (또는 둘 다 계단식으로 작동)해야합니다. 이러한 인증서를 EC2 머신에 직접 설치할 수 없기 때문입니다. .


답변

아니요, EC2에 인증서를 배포하는 데 aws 인증서 관리자를 사용할 수 없습니다. 인증서 관리자 인증서는 Cloudfront 및 탄력적 부하 분산 장치에 대해서만 배포 할 수 있습니다. Inoredr을 ec2에서 사용하려면 elb를 ec2 위에 배치해야하므로 클라이언트에서로드 밸런서로의 요청이 https로 보호되고 elb에서 ec2 웹 서버로의 웹 서버가 http에있게됩니다.


답변

AWS ACM Cert를 내부 용도로만 사용하는 경우 AWS ACM 사설 CA를 사용하여 인증서를 발급 할 수 있습니다 (루트 CA가 공개적으로 신뢰할 수있는 CA 인 경우에도 공용 / 외부 트래픽 용도로 사용할 수 있다고 생각합니다).

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

애플리케이션 / EC2 / 컨테이너를 시작하는 동안 ACM 사설 CA에서 발급 한 인증서 / 개인 키를 대상으로 내보내고 트래픽을 처리하기 위해 참조하는 단계를 설정합니다.

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

한 가지 좋은 점은 모든 사람이 인증서의 개인 키를 다운로드 할 수 없도록 IAM 역할을 사용하여 인증서 내보내기 기능을 호출 할 수있는 사람을 제어 할 수 있다는 것입니다.

한 가지 단점은 사설 CA가 고가의 AWS 서비스 ($ 400 / 월)라는 것입니다.
https://aws.amazon.com/certificate-manager/pricing/


답변

위의 설명에 추가하면 AWS Certificate Manager를 사용할 수 없지만 IIS를 실행하는 Windows 서버의 ec2에 Let ‘s Encrypt 인증서를 추가 할 수 있으며 매우 쉽습니다.

  1. 탄력적 IP를 ec2 인스턴스와 연결합니다.

  2. 등록 된 도메인이 있는지 확인하십시오. 인스턴스와 함께 제공되는 ec2———-.us-east-1.compute.amazonaws.com 유형 이름은 사용할 수 없습니다.

  3. 도메인 공급자의 DNS 설정을 통해 도메인이 탄력적 IP를 가리 키도록합니다.

  4. ec2 인스턴스에 연결하고 사이트 바인딩에 도메인 이름을 추가합니다.

  5. https://github.com/PKISharp/win-acme/releases로 이동합니다.

  6. 자산 아래에서 최신 버전 (예 : win-acme.v2.0.10.444.zip)을 사용하십시오. 이것은 필요한 유일한 자산 폴더입니다.

  7. 폴더의 압축을 풀고 관리자 권한으로 터미널을 열고 압축을 푼 폴더로 cd합니다.

  8. wacs.exe를 실행하고 지시를 따릅니다.

  9. 인스턴스에 할당 된 보안 그룹이 IIS에서 선택한 HTTPS 포트를 통해 트래픽 (최소한 자신의 IP)을 허용하는지 확인하십시오. 기본적으로 포트 443입니다.

나는 이것을 알아낼 때 아래 링크가 도움이된다는 것을 알았습니다. 더 많은 도움이 필요한 경우 이전 릴리스를 사용하는 비디오가 있지만 동일한 아이디어입니다.

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

또한이 기사가 도움이 될 수 있습니다.

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


답변