상호 인증 - AWS 클라이언트 VPN

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

상호 인증

상호 인증에서는 Client VPN이 인증서를 사용하여 클라이언트와 서버 간에 인증을 수행합니다. 인증서는 인증 기관(CA)에서 발행한 디지털 형태의 ID 증명서입니다. 서버는 클라이언트 인증서를 사용하여 Client VPN 엔드포인트에 연결하려고 시도하는 클라이언트를 인증합니다. 하나의 서버 인증서 및 키와 하나 이상의 클라이언트 인증서 및 키를 생성해야 합니다.

AWS Certificate Manager (ACM) 에 서버 인증서를 업로드하고 Client VPN 엔드포인트를 생성할 때 이를 지정해야 합니다. 서버 인증서를 ACM에 업로드할 때 인증 기관(CA)도 지정합니다. 클라이언트 인증서의 CA가 서버 인증서의 CA와 다른 경우 클라이언트 인증서를 ACM에 업로드하기만 하면 됩니다. ACM에 대한 자세한 내용은 AWS Certificate Manager 사용 설명서를 참조하세요.

Client VPN 엔드포인트에 연결할 각 클라이언트에 대해 별도의 클라이언트 인증서 및 키를 생성할 수 있습니다. 이렇게 하면 사용자가 조직을 떠나는 경우 특정 클라이언트 인증서를 취소할 수 있습니다. 이 경우 클라이언트 인증서가 서버 인증서와 동일한 CA에서 발급된 경우 Client VPN 엔드포인트를 생성할 때 클라이언트 인증서에 대한 서버 인증서 ARN을 지정할 수 있습니다.

참고

Client VPN 엔드포인트는 1024비트 및 2048비트 RSA 키 크기만 지원합니다. 또한 클라이언트 인증서의 제목 필드에 CN 속성이 있어야 합니다.

Client VPN 서비스에서 사용 중인 인증서가 ACM 자동 교체를 통해 업데이트되거나 새 인증서를 수동으로 가져와 업데이트되거나 IAM Identity Center에 대한 메타데이터 업데이트를 통해 업데이트되면 Client VPN 서비스가 Client VPN 엔드포인트를 새 인증서로 자동 업데이트합니다. 이 자동화 프로세스에는 최대 24시간이 소요될 수 있습니다.

Linux/macOS

다음 절차에서는 OpenVPN easy-rsa를 사용하여 서버 및 클라이언트 인증서와 키를 생성한 다음, 서버 인증서와 키를 ACM에 업로드합니다. 자세한 내용은 Easy-RSA 3 Quickstart README를 참조하십시오.

서버 및 클라이언트 인증서와 키를 생성하여 ACM에 업로드하려면
  1. OpenVPN easy-rsa 리포지토리를 로컬 컴퓨터에 복제하고 easy-rsa/easyrsa3 폴더로 이동하십시오.

    $ git clone https://github.com/OpenVPN/easy-rsa.git
    $ cd easy-rsa/easyrsa3
  2. 새 PKI 환경을 시작합니다.

    $ ./easyrsa init-pki
  3. 새 CA(인증 기관)를 빌드하려면 이 명령을 실행하고 표시되는 메시지를 따릅니다.

    $ ./easyrsa build-ca nopass
  4. 서버 인증서 및 키를 생성합니다.

    $ ./easyrsa --san=DNS:server build-server-full server nopass
  5. 클라이언트 인증서 및 키를 생성합니다.

    클라이언트를 구성할 때 필요하므로 클라이언트 인증서와 클라이언트 프라이빗 키를 저장해야 합니다.

    $ ./easyrsa build-client-full client1.domain.tld nopass

    클라이언트 인증서와 키가 필요한 각 클라이언트(최종 사용자)에 대해 이 단계를 선택적으로 반복할 수 있습니다.

  6. 서버 인증서 및 키 그리고 클라이어트 인증서 및 키를 사용자 지정 폴더에 복사한 후 해당 폴더로 이동합니다.

    인증서 및 키를 복사하기 전에 mkdir 명령을 사용하여 사용자 지정 폴더를 만듭니다. 다음 예제에서는 홈 디렉터리에 사용자 지정 폴더를 만듭니다.

    $ mkdir ~/custom_folder/ $ cp pki/ca.crt ~/custom_folder/ $ cp pki/issued/server.crt ~/custom_folder/ $ cp pki/private/server.key ~/custom_folder/ $ cp pki/issued/client1.domain.tld.crt ~/custom_folder $ cp pki/private/client1.domain.tld.key ~/custom_folder/ $ cd ~/custom_folder/
  7. 서버 인증서 및 키와 클라이언트 인증서 및 키를 ACM에 업로드합니다. Client VPN 엔드포인트를 생성하려는 리전과 동일한 리전에 업로드해야 합니다. 다음 명령은 AWS CLI 를 사용하여 인증서를 업로드합니다. 대신 ACM 콘솔을 사용하여 인증서를 업로드하려면 AWS Certificate Manager 사용 설명서인증서 가져오기를 참조하세요.

    $ aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt
    $ aws acm import-certificate --certificate fileb://client1.domain.tld.crt --private-key fileb://client1.domain.tld.key --certificate-chain fileb://ca.crt

    클라이언트 인증서를 반드시 ACM에 업로드하지 않아도 됩니다. 서버 및 클라이언트 인증서가 동일한 인증 기관(CA)에 의해 발급된 경우, Client VPN 엔드포인트를 생성할 때 서버 및 클라이언트 모두에 대해 서버 인증서 ARN을 사용할 수 있습니다. 위에서 설명한 단계에서는 동일한 CA를 사용하여 두 가지 인증서를 모두 생성했습니다. 그러나 완전성을 위해 클라이언트 인증서를 업로드하는 단계가 포함됩니다.

Windows

다음 절차에서는 Easy-RSA 3.x 소프트웨어를 설치하고 이 소프트웨어를 사용하여 서버 및 클라이언트 인증서와 키를 생성합니다.

서버 및 클라이언트 인증서와 키를 생성하여 ACM에 업로드하려면
  1. EasyRSA 릴리스(EasyRSA releases) 페이지를 열고 사용 중인 Windows 버전에 해당하는 ZIP 파일을 다운로드한 후 압축을 풉니다.

  2. 명령 프롬프트를 열고 EasyRSA-3.x 폴더가 추출된 위치로 이동합니다.

  3. 다음 명령을 실행하여 EasyRSA 3 셸을 엽니다.

    C:\Program Files\EasyRSA-3.x> .\EasyRSA-Start.bat
  4. 새 PKI 환경을 시작합니다.

    # ./easyrsa init-pki
  5. 새 CA(인증 기관)를 빌드하려면 이 명령을 실행하고 표시되는 메시지를 따릅니다.

    # ./easyrsa build-ca nopass
  6. 서버 인증서 및 키를 생성합니다.

    # ./easyrsa --san=DNS:server build-server-full server nopass
  7. 클라이언트 인증서 및 키를 생성합니다.

    # ./easyrsa build-client-full client1.domain.tld nopass

    클라이언트 인증서와 키가 필요한 각 클라이언트(최종 사용자)에 대해 이 단계를 선택적으로 반복할 수 있습니다.

  8. EasyRSA 3 셸을 종료합니다.

    # exit
  9. 서버 인증서 및 키 그리고 클라이어트 인증서 및 키를 사용자 지정 폴더에 복사한 후 해당 폴더로 이동합니다.

    인증서 및 키를 복사하기 전에 mkdir 명령을 사용하여 사용자 지정 폴더를 만듭니다. 다음 예제에서는 C:\ 드라이브에 사용자 지정 폴더를 만듭니다.

    C:\Program Files\EasyRSA-3.x> mkdir C:\custom_folder C:\Program Files\EasyRSA-3.x> copy pki\ca.crt C:\custom_folder C:\Program Files\EasyRSA-3.x> copy pki\issued\server.crt C:\custom_folder C:\Program Files\EasyRSA-3.x> copy pki\private\server.key C:\custom_folder C:\Program Files\EasyRSA-3.x> copy pki\issued\client1.domain.tld.crt C:\custom_folder C:\Program Files\EasyRSA-3.x> copy pki\private\client1.domain.tld.key C:\custom_folder C:\Program Files\EasyRSA-3.x> cd C:\custom_folder
  10. 서버 인증서 및 키와 클라이언트 인증서 및 키를 ACM에 업로드합니다. Client VPN 엔드포인트를 생성하려는 리전과 동일한 리전에 업로드해야 합니다. 다음 명령은 를 AWS CLI 사용하여 인증서를 업로드합니다. 대신 ACM 콘솔을 사용하여 인증서를 업로드하려면 AWS Certificate Manager 사용 설명서인증서 가져오기를 참조하세요.

    aws acm import-certificate \ --certificate fileb://server.crt \ --private-key fileb://server.key \ --certificate-chain fileb://ca.crt
    aws acm import-certificate \ --certificate fileb://client1.domain.tld.crt \ --private-key fileb://client1.domain.tld.key \ --certificate-chain fileb://ca.crt

    클라이언트 인증서를 반드시 ACM에 업로드하지 않아도 됩니다. 서버 및 클라이언트 인증서가 동일한 인증 기관(CA)에 의해 발급된 경우, Client VPN 엔드포인트를 생성할 때 서버 및 클라이언트 모두에 대해 서버 인증서 ARN을 사용할 수 있습니다. 위에서 설명한 단계에서는 동일한 CA를 사용하여 두 가지 인증서를 모두 생성했습니다. 그러나 완전성을 위해 클라이언트 인증서를 업로드하는 단계가 포함됩니다.

서버 인증서 갱신

만료된 서버 인증서를 갱신하고 다시 가져올 수 있습니다. 사용 중인 OpenVPN easy-rsa 버전에 따라 절차가 달라질 수 있습니다. 자세한 내용은 Easy-RSA 3 인증서 갱신 및 취소 설명서를 참조하십시오.

서버 인증서 갱신하기
  1. 다음 중 하나를 수행하십시오.

    • 이지 RSA 버전 3.1.x

      1. 인증서 갱신 명령을 실행합니다.

        $ ./easyrsa renew server nopass
    • 이지 RSA 버전 3.2.x

      1. 만료 명령을 실행합니다.

        $ ./easyrsa expire server
      2. 새 인증서에 서명하세요.

        $ ./easyrsa sign-req server server
  2. 사용자 지정 폴더를 만들고 새 파일을 여기에 복사한 다음 해당 폴더로 이동합니다.

    $ mkdir ~/custom_folder2 $ cp pki/ca.crt ~/custom_folder2/ $ cp pki/issued/server.crt ~/custom_folder2/ $ cp pki/private/server.key ~/custom_folder2/ $ cd ~/custom_folder2/
  3. 새 파일을 ACM으로 가져옵니다. Client VPN 엔드포인트와 동일한 리전에서 가져와야 합니다.

    $ aws acm import-certificate \ --certificate fileb://server.crt \ --private-key fileb://server.key \ --certificate-chain fileb://ca.crt \ --certificate-arn arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-12345678901