ACM을 사용하여 Windows SSL 인증서를 Application Load Balancer로 마이그레이션 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

ACM을 사용하여 Windows SSL 인증서를 Application Load Balancer로 마이그레이션

작성자: Chandra Sekhar Yaratha(AWS) 및 Igor Kovalchuk(AWS)

환경: 프로덕션

소스: Windows 웹 애플리케이션

타겟: Application Load Balancer

R 유형: 리플랫포밍

워크로드: Microsoft

기술: 마이그레이션, 관리 및 거버넌스, 웹 및 모바일 앱

AWS 서비스: Elastic Load Balancing(ELB), Certificate Manager(ACM)

요약

이 패턴은 Certificate Manager(ACM)를 사용하여, 온프레미스 서버에 호스팅된 웹 사이트 또는 Microsoft Internet Information Services(IIS)의 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스로부터 기존의 Secure Sockets Layer(SSL) 인증서를 마이그레이션하는 지침을 제공합니다. 그런 다음 Elastic Load Balancing과 함께 SSL 인증서를 사용할 수 있습니다.

SSL은 데이터를 보호하고, ID를 확인하며, 더 나은 검색 엔진 순위를 제공하고, 지불 카드 산업 데이터 보안 표준(PCI DSS) 요구 사항을 충족하는 데 도움이 되며, 고객 신뢰를 향상시킵니다. 이러한 워크로드를 관리하는 개발자와 IT 팀은 IIS 서버 및 Windows 서버를 비롯한 웹 애플리케이션과 인프라가 기본 정책에 계속 부합하기를 바랍니다.

이 패턴에는 Microsoft IIS에서 기존 SSL 인증서를 수동으로 내보내고, 이를 개인 정보 교환(PFX) 형식에서 ACM이 지원하는 Private Enhanced Mail(PEM) 형식으로 변환한 다음, 계정의 ACM으로 가져오는 작업이 포함됩니다. 또한 애플리케이션용 Application Load Balancer를 생성하고 가져온 인증서를 사용하도록 Application Load Balancer를 구성하는 방법도 설명합니다. 그러면 Application Load Balancer에서 HTTPS 연결이 종료되므로 웹 서버에서 추가 구성 오버헤드가 필요하지 않습니다. 자세한 내용은 Application Load Balancer에 대한 HTTPS 리스너 생성을 참조하세요.

Windows 서버는 .pfx 또는 .p12 파일을 사용하여 퍼블릭 키 파일(SSL 인증서)과 고유한 프라이빗 키 파일을 포함합니다. 인증 기관(CA)은 퍼블릭 키 파일을 제공합니다. 서버를 사용하여, 인증서 서명 요청(CSR)이 생성된 곳에서 관련 프라이빗 키 파일을 생성합니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성 상태의 AWS 계정

  • 대상에서 사용하는 각 가용 영역에 하나 이상의 프라이빗 서브넷과 하나 이상의 퍼블릭 서브넷이 있는 Virtual Private Cloud(VPC)

  • Windows 서버 2012 이상에서 실행되는 IIS 버전 8.0 이상

  • IIS에서 실행되는 웹 애플리케이션

  • IIS 서버에 대한 관리자 액세스

아키텍처

소스 기술 스택

  • 데이터가 암호화된 연결(HTTPS)을 통해 안전하게 전송되도록 SSL을 사용한 IIS 웹 서버 구현

소스 아키텍처

ACM을 사용하여 Windows SSL 인증서를 Application Load Balancer로 마이그레이션하기 위한 소스 아키텍처

대상 기술 스택

  • 계정의 ACM 인증서

  • 가져온 인증서를 사용하도록 구성된 Application Load Balancer

  • 프라이빗 서브넷의 Windows 서버 인스턴스

대상 아키텍처

ACM을 사용하여 Windows SSL 인증서를 Application Load Balancer로 마이그레이션하기 위한 대상 아키텍처

도구

  • Certificate Manager(ACM)은 웹 사이트와 애플리케이션을 보호하는 퍼블릭 및 프라이빗 SSL/TLS X.509 인증서와 키를 생성하고, 저장하고, 갱신하는 데 도움을 줍니다.

  • Elastic Load Balancing(ELB)은 들어오는 애플리케이션 또는 네트워크 트래픽을 여러 대상에 분산합니다. 예를 들어 하나 이상의 가용 영역에 있는 EC2 인스턴스, 컨테이너, IP 주소 전반적으로 트래픽을 분산할 수 있습니다.

모범 사례

  • HTTP에서 HTTPS로 리디렉션을 적용합니다.

  • 특정 포트로의 인바운드 트래픽만 허용하도록 Application Load Balancer의 보안 그룹을 적절하게 구성합니다.

  • 각기 다른 가용 영역에서 EC2 인스턴스를 시작하여 고가용성을 보장합니다.

  • 애플리케이션의 도메인이 IP 주소 대신 Application Load Balancer의 DNS 이름을 가리키도록 구성합니다.

  • Application Load Balancer에 애플리케이션 계층 상태 확인이 구성되어 있는지 확인합니다.

  • 상태 확인의 임계값을 구성합니다.

  • CloudWatchAmazon을 사용하여 애플리케이션 로드 밸런서를 모니터링하십시오.

에픽

작업설명필요한 기술

Windows 서버에서 .pfx 파일을 내보냅니다.

Windows 서버의 온프레미스 IIS 관리자에서 .pfx 파일로서 SSL 인증서를 내보내려면:

  1. 시작, 관리, 인터넷 정보 서비스(IIS) 관리자를 선택합니다.

  2. 서버 이름을 선택하고, 보안에서 서버 인증서를 두 번 클릭합니다.

  3. 내보내려는 인증서를 선택한 다음 내보내기를 선택합니다.

  4. 인증서 내보내기 상자에서 .pfx 파일의 위치, 경로, 이름을 선택합니다.

  5. .pfx 파일의 암호를 지정하고 확인합니다.

    참고: .pfx 파일을 설치할 때 이 암호가 필요합니다.

  6. 확인을 선택합니다.

이제 .pfx 파일을 지정 위치와 경로에 저장해야 합니다.

시스템 관리자
작업설명필요한 기술

OpenSSL 툴킷을 다운로드하여 설치합니다.

  1. Shining Light Productions 웹사이트에서 Win32/Win64 OpenSSL을 다운로드하여 설치합니다.

  2. OpenSSL 바이너리의 위치를 시스템 PATH 변수에 추가하여 명령줄에서 바이너리를 사용할 수 있도록 합니다.

시스템 관리자

PFX로 인코딩된 인증서를 PEM 형식으로 변환합니다.

다음 절차는 PFX로 인코딩되고 서명된 인증서 파일을 PEM 형식의 3개 파일로 변환합니다.

  • cert-file.pem에는 리소스의 SSL/TLS 인증서가 들어 있습니다.

  • privatekey.pem에는 암호로 보호하지 않는 인증서의 프라이빗 키가 들어 있습니다.

  • ca-chain.pem에는 CA의 루트 인증서가 들어 있습니다.

PFX로 인코딩된 인증서를 변환하려면:

  1. 윈도우를 PowerShell 실행합니다.

  2. 다음 명령을 사용하여 PFX 파일로부터 인증서의 프라이빗 키를 추출합니다. 메시지가 표시되면 인증서 암호를 입력합니다.

    openssl pkcs12 -in <filename>.pfx -nocerts -out withpw-privatekey.pem

    이 명령은 PEM으로 인코딩된 프라이빗 키 파일(이름: privatekey.pem)을 생성합니다. 메시지가 표시되면 프라이빗 키를 보호하는 패스프레이즈를 입력합니다.

  3. 다음 명령을 실행하여 에 대한 패스프레이즈를 설정합니다. 메시지가 표시되면 2단계에서 생성한 패스프레이즈를 입력합니다.

    openssl rsa -in withpw-privatekey.pem -out privatekey.pem

    명령이 성공하면 “RSA 키를 작성”이라는 메시지가 표시됩니다.

  4. 다음 명령을 사용하여 PFX 파일의 인증서를 PEM 파일로 전송합니다.

    openssl pkcs12 -in <file_name>.pfx -clcerts -nokeys -out cert-file.pem

    이 명령은 cert-file.pem라는 이름의 PEM 인코딩된 인증서 파일을 생성합니다. 명령이 성공하면 “MAC 승인됨”이라는 메시지가 표시됩니다.

  5. PFX 파일에서 CA 체인 파일을 생성합니다. 다음 명령을 실행하여 ca-chain.pem이라는 CA 체인 파일을 생성합니다.

    openssl pkcs12 -in <file_name>.pfx -cacerts -nokeys -chain -out ca-chain.pem

    명령이 성공하면 “MAC 승인됨”이라는 메시지가 표시됩니다.

시스템 관리자
작업설명필요한 기술

인증서 가져오기를 준비합니다.

ACM 콘솔에서 인증서 가져오기를 선택합니다.

클라우드 관리자

인증서 본문을 입력합니다.

인증서 본문에서 가져오려는 PEM 인코딩된 인증서를 붙여넣습니다.

이 작업과 이 에픽의 다른 작업에 설명된 명령 및 절차에 대한 자세한 내용은 ACM 설명서에서 인증서 가져오기를 참조하십시오.

클라우드 관리자

인증서 프라이빗 키를 입력합니다.

[Certificate private key]에 인증서의 퍼블릭 키와 일치하는 암호화되지 않은 PEM 인코딩 프라이빗 키를 붙여넣습니다.

클라우드 관리자

인증서 체인을 입력합니다.

인증서 체인의 경우 CertificateChain.pem 파일에 저장되어 있는 PEM 인코딩 인증서 체인을 붙여넣습니다.

클라우드 관리자

인증서를 가져옵니다.

[Review and import]를 선택합니다. 인증서에 대한 정보가 정확한지 확인한 다음 가져오기를 선택합니다.

클라우드 관리자
작업설명필요한 기술

로드 밸런서와 리스너를 생성하고 구성합니다.

Elastic Load Balancing 설명서에 나와 있는 지침을 따라 대상 그룹을 구성하고, 대상을 등록하며, Application Load Balancer 및 리스너를 생성합니다. 포트 443의 경우 두 번째 리스너(HTTPS)를 추가합니다.

클라우드 관리자

문제 해결

문제Solution

Windows에서는 OpenSSL 명령을 시스템 경로에 추가한 후에도 OpenSSL 명령을 인식하지 PowerShell 못합니다.

$env:path(을)를 점검하여, OpenSSL 바이너리의 위치가 포함되어 있는지 확인합니다.

인식되지 않으면 다음 명령어를 다음 명령어를 실행하세요. PowerShell

$env:path = $env:path + ";C:\OpenSSL-Win64\bin"

관련 리소스

ACM으로 인증서 가져오기

Application Load Balancer 생성