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

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

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

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

환경: 프로덕션

소스: Windows 웹 애플리케이션

대상: 의 Application Load Balancer AWS

R 유형: 리플랫포밍

워크로드: Microsoft

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

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

요약

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

SSL 는 데이터를 보호하고, 자격 증명을 확인하고, 검색 엔진 순위를 높이고, 결제 카드 산업 데이터 보안 표준(PCI DSS) 요구 사항을 충족하고, 고객 신뢰를 개선합니다. 이러한 워크로드를 관리하는 개발자와 IT 팀은 IIS 서버 및 Windows Server를 포함한 웹 애플리케이션 및 인프라가 기본 정책을 계속 준수하기를 원합니다.

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

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

사전 조건 및 제한 사항

사전 조건 

  • 활성 AWS 계정

  • 대상에서 사용하는 각 가용 영역에 하나 이상의 프라이빗 및 퍼블릭 서브넷이 AWS 있는 의 가상 프라이빗 클라우드(VPC)

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

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

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

아키텍처

소스 기술 스택  

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

소스 아키텍처

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

대상 기술 스택

  • ACM AWS 계정의 인증서

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

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

대상 아키텍처 

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

도구

  • AWS Certificate Manager(ACM)를 사용하면 AWS 웹 사이트와 애플리케이션을 보호하는 퍼블릭 및 프라이빗 SSL/TLS X.509 인증서와 키를 생성, 저장 및 갱신할 수 있습니다.

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

모범 사례

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

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

  • 고가용성을 보장하려면 다양한 가용 영역에서 EC2 인스턴스를 시작합니다.

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

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

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

  • Amazon CloudWatch을 사용하여 Application Load Balancer 모니터링합니다.

에픽

작업설명필요한 기술

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

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

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

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

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

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

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

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

  6. 확인을 선택합니다.

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

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

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

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

  2. 바이너리를 명령줄로 사용할 수 있도록 시스템 PATH 변수에 바이너리 열기SSL 위치를 추가합니다.

시스템 관리자

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

다음 단계에서는 PFX인코딩되고 서명된 인증서 파일을 PEM 세 개의 파일로 변환합니다.

  • cert-file.pem 에는 리소스에 대한 SSL/TLS 인증서가 포함되어 있습니다.

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

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

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

  1. Windows 를 실행합니다 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

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

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

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

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

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

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

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

클라우드 관리자

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

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

이 에 설명된 명령 및 단계와 이 에픽의 다른 작업에 대한 자세한 내용은 ACM 설명서의 인증서 가져오기를 참조하세요.

클라우드 관리자

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

인증서 프라이빗 키 의 경우 인증서의 퍼블릭 키와 일치하는 PEM인코딩되고 암호화되지 않은 프라이빗 키를 붙여넣습니다.

클라우드 관리자

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

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

클라우드 관리자

인증서를 가져옵니다.

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

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

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

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

클라우드 관리자

문제 해결

문제Solution

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

바이너리 열기SSL의 위치가 포함되어 $env:path 있는지 확인합니다.

그렇지 않으면 에서 다음 명령을 실행합니다 PowerShell.

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

관련 리소스

로 인증서 가져오기 ACM

Application Load Balancer 생성