Windows 서버에서 서버, 클라이언트 인증서 및 해당 키를 생성하여 ACM에 업로드하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 4월 10일

Windows 서버에서 서버, 클라이언트 인증서 및 해당 키를 생성하여 AWS Certificate Manager(ACM)에 업로드하려면 어떻게 해야 합니까?

해결 방법

서버, 클라이언트 인증서 및 해당 키 생성

1.    OpenVPN 커뮤니티 다운로드 페이지로 이동합니다.

2.    실행 중인 Windows OS 버전에 대한 Windows 설치 프로그램 파일(.exe)을 선택합니다. 그런 다음 [실행]을 선택합니다.

3.    OpenVPN 설정 마법사를 완료합니다.
       [다음]을 선택합니다.
       라이선스 계약을 검토한 후 [동의함]을 선택합니다.
       [구성 요소 선택]에서 [EasyRSA 2 인증서 관리 스크립트]를 선택합니다.
       [다음]을 선택한 다음, [설치]를 선택합니다.

4.    OpenVPN 소프트웨어를 설치한 후 명령 프롬프트를 열고 easy-rsa 폴더로 이동합니다.

cd \Program Files\OpenVPN\easy-rsa

5.    OpenVPN 구성을 시작합니다.

init-config

6.    텍스트 편집기에서 vars.bat 파일을 엽니다.

notepad vars.bat 

KEY_Size=2048로 설정합니다. 그런 다음 KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORGKEY_EMAIL 값을 설정합니다. 이러한 파라미터를 비워 두지 마십시오.

텍스트 편집기를 저장하고 닫습니다.

7.    다음 명령을 실행하여 인증 기관(CA) 인증서에 대해 위의 변수를 설정하고, PKI(퍼블릭 키 인프라)를 초기화하고, CA 인증서를 빌드합니다.

vars
clean-all
build-ca

프롬프트에서 모든 필드를 기본값으로 둡니다. 선택적으로 일반 이름을 서버의 도메인 이름으로 변경할 수 있습니다.

8.    다음 명령을 실행하여 서버에 대한 인증서와 프라이빗 키를 생성합니다.

build-key-server server

프롬프트에서 server.example.com 형식을 사용하여 일반 이름을 서버의 도메인 이름으로 변경합니다. 나머지 필드는 모두 기본값으로 둡니다.

9.    다음 명령을 실행하여 클라이언트에 대한 인증서와 프라이빗 키를 생성합니다.

build-key client1

프롬프트에서  client1.example.com 형식을 사용하여 일반 이름을 클라이언트의 도메인 이름으로 변경합니다 . 나머지 필드는 모두 기본값으로 둡니다.

10.    (선택 사항) 필요한 경우 추가 클라이언트 인증서와 키를 생성합니다.

build-key client2

프롬프트에서 client2.example.com형식을 사용하여 일반 이름을 클라이언트의 도메인 이름으로 변경합니다. 나머지 필드는 모두 기본값으로 둡니다.

중요: 일반 이름 설정을 위해 위에 지정된 형식을 따르지 않는 경우 인증서를 ACM으로 가져올 때 도메인 이름을 사용할 수 없습니다. 따라서 AWS Client VPN 엔드포인트를 생성할 때 서버 인증서 또는 클라이언트 인증서를 지정하는 데 사용할 수 있는 옵션이 아닙니다.

서버, 클라이언트 인증서 및 키를 ACM으로 가져오기

참고: 서버, 클라이언트 인증서 및 해당 키는 C:\Program Files\OpenVPN\easy-rsa\keys에서 사용할 수 있습니다.

1.    server.crt, server.keyclient1.crtclient1.key 및 ca.crt 파일을 엽니다.

2.    ACM 콘솔을 열고 [인증서 가져오기]를 선택합니다.

3.    [인증서 가져오기] 페이지에서 다음 콘텐츠를 복사/붙여 넣습니다.
       server.crt 파일에서 [인증서 본문]으로.
       server.key 파일에서 [인증서 프라이빗 키]로.
       ca.crt 파일에서 [인증서 체인]으로.     

4.    [가져오기]를 선택하여 서버 인증서를 가져옵니다.

5.    [인증서 가져오기]를 다시 선택하고 다음 콘텐츠를 복사/붙여 넣습니다.                 
       client1.crt 파일에서 [인증서 본문]으로
       client1.key 파일에서 [인증서 프라이빗 키]로   
       ca.crt 파일에서 [인증서 체인]으로        

6.    [가져오기]를 선택하여 클라이언트 인증서를 가져옵니다.

또는 AWS 명령줄 인터페이스(AWS CLI)를 사용하여 서버, 클라이언트 인증서 및 해당 키를 ACM으로 가져올 수 있습니다.

cd C:\Program Files\OpenVPN\easy-rsa\keys
aws acm import-certificate --certificate file://"C:\Program Files\OpenVPN\easy-rsa\keys\server.crt" --private-key file://"C:\Program Files\OpenVPN\easy-rsa\keys\server.key" --certificate-chain file://"C:\Program Files\OpenVPN\easy-rsa\keys\ca.crt"
aws acm import-certificate --certificate file://"C:\Program Files\OpenVPN\easy-rsa\keys\client1.crt" --private-key file://"C:\Program Files\OpenVPN\easy-rsa\keys\client1.key" --certificate-chain file://"C:\Program Files\OpenVPN\easy-rsa\keys\ca.crt"

서버 및 클라이언트 인증서를 성공적으로 생성하고 가져왔는지 확인

1.    ACM 콘솔을 엽니다.

2.    인증서 목록에서 서버 및 클라이언트 인증서의 [상태]열에 [발행됨]이 표시되는지 확인합니다.


상호 인증(AWS Client VPN용)

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?