AWS Certificate Manager에서 인증서 준비
API에 대한 사용자 지정 도메인 이름을 설정하기 전에 에서 SSL/TLS 인증서를 준비해야 합니다AWS Certificate Manager 자세한 내용은 AWS Certificate Manager 사용 설명서를 참조하십시오.
고려 사항
다음은 SSL/TLS 인증서에 대한 고려 사항입니다.
-
엣지 최적화 사용자 지정 도메인 이름을 생성한 경우 API Gateway는 CloudFront를 활용하여 사용자 지정 도메인 이름에 대한 인증서를 지원합니다. 그렇기 때문에 사용자 지정 도메인 이름의 SSL/TLS 인증서에 대한 요구 사항과 제약 조건이 CloudFront에서 지정됩니다. 예를 들어, 퍼블릭 키의 최대 크기는 2048이고 프라이빗 키 크기는 1024, 2048 및 4096입니다. 퍼블릭 키 크기는 이용하는 인증 기관에서 정합니다. 이용하는 인증 기관에 기본 설정 길이와 다른 크기의 키를 반환하도록 요청합니다. 자세한 내용은 객체에 대한 액세스 보안 및 서명된 URL 및 서명된 쿠키 생성을 참조하세요.
-
리전 사용자 지정 도메인 이름이 포함된 ACM 인증서를 사용하려면 API와 동일한 리전에서 인증서를 요청하거나 가져와야 합니다. 인증서는 공개적으로 신뢰할 수 있는 인증 기관에서 서명해야 하며 사용자 지정 도메인 이름을 포함해야 합니다.
-
엣지 최적화 사용자 지정 도메인 이름이 포함된 ACM 인증서를 사용하려면 미국 동부(버지니아 북부) – us-east-1
리전에서 인증서를 요청하거나 가져와야 합니다.
-
등록된 도메인 이름(예:example.com
)이 있어야 합니다. Amazon Route 53 또는 서드 파티 인증 도메인 등록자를 사용할 수 있습니다. 그러한 등록 대행자의 목록은 ICANN 웹 사이트에서 Accredited Registrar Directory를 참조하세요.
SSL/TLS 인증서를 생성하거나 ACM으로 가져오려면
다음 절차는 도메인 이름에 대한 SSL/TLS 인증서를 생성하거나 가져오는 방법을 보여 줍니다.
- To request a certificate provided by ACM for a domain name
-
-
AWS Certificate Manager 콘솔에 로그인합니다.
-
인증서 요청을 선택합니다.
-
인증서 유형에서 퍼블릭 인증서 요청을 선택합니다.
-
Next(다음)를 선택합니다.
-
정규화된 도메인 이름에 API에 대한 사용자 지정 도메인 이름(예: api.example.com
)을 입력합니다.
-
필요에 따라 이 인증서에 다른 이름 추가를 선택할 수도 있습니다.
검증 방법에서 도메인 소유권을 검증하는 방법을 선택합니다.
-
키 알고리즘에서 암호화 알고리즘을 선택합니다.
-
요청을 선택합니다.
-
요청이 유효하려면 ACM이 인증서를 발급하기 전에 인터넷 도메인의 등록 소유자가 요청에 동의해야 합니다. Route 53를 사용하여 퍼블릭 DNS 레코드를 관리하는 경우 ACM 콘솔을 통해 레코드를 직접 업데이트할 수 있습니다.
- To import into ACM a
certificate for a domain name
-
인증 기관으로부터 여러분의 사용자 지정 도메인 이름에 대한 PEM 인코딩 SSL/TLS 인증서를 취득합니다. 이러한 CA의 일부 목록은 Mozilla 포함 CA 목록을 참조하세요.
-
OpenSSL 웹 사이트에 있는 OpenSSL 도구 키트를 사용하여 인증서의 프라이빗 키를 생성하고 파일에 생성된 결과물을 저장합니다.
openssl genrsa -out private-key-file
2048
-
OpenSSL을 사용하여 이전에 생성된 프라이빗 키로 인증서 서명 요청(CSR) 생성:
openssl req -new -sha256 -key private-key-file
-out CSR-file
-
CSR을 인증 기관에 제출하고 그 결과 얻은 인증서를 저장합니다.
-
인증 기관으로부터 인증서 체인을 다운로드합니다.
다른 방법으로 프라이빗 키를 얻고 키가 암호화된 경우, 사용자 지정 도메인 이름을 설정하기 위해 키를 API Gateway에 제출하기 전에 다음 명령을 사용하여 키를 암호 해독할 수 있습니다.
openssl pkcs8 -topk8 -inform pem -in MyEncryptedKey.pem
-outform pem -nocrypt -out MyDecryptedKey.pem
-
인증서를 AWS Certificate Manager로 업로드합니다.
-
AWS Certificate Manager 콘솔에 로그인합니다.
-
[Import a certificate]을 선택합니다.
-
인증서 본문에 인증 기관으로부터 받은 PEM 형식의 서버 인증서 본문을 입력합니다. 다음은 그와 같은 인증서의 축약된 예입니다.
-----BEGIN CERTIFICATE-----
EXAMPLECA+KgAwIBAgIQJ1XxJ8Pl++gOfQtj0IBoqDANBgkqhkiG9w0BAQUFADBB
...
az8Cg1aicxLBQ7EaWIhhgEXAMPLE
-----END CERTIFICATE-----
-
인증서 프라이빗 키에 PEM 형식 인증서의 프라이빗 키를 입력합니다. 다음은 그와 같은 키의 축약된 예입니다.
-----BEGIN RSA PRIVATE KEY-----
EXAMPLEBAAKCAQEA2Qb3LDHD7StY7Wj6U2/opV6Xu37qUCCkeDWhwpZMYJ9/nETO
...
1qGvJ3u04vdnzaYN5WoyN5LFckrlA71+CszD1CGSqbVDWEXAMPLE
-----END RSA PRIVATE KEY-----
-
인증서 체인에 PEM 형식의 중간 인증서와 루트 인증서(선택 사항)를 빈 줄 없이 서로 이어서 입력합니다. 루트 인증서를 포함하는 경우 인증서 체인은 중간 인증서로 시작하고 루트 인증서를 끝나야 한다. 인증 기관에서 제공한 중간 인증서를 사용합니다. 신뢰 경로 체인에 없는 중간 인증서를 포함시키지 마세요. 다음은 축약된 예입니다.
-----BEGIN CERTIFICATE-----
EXAMPLECA4ugAwIBAgIQWrYdrB5NogYUx1U9Pamy3DANBgkqhkiG9w0BAQUFADCB
...
8/ifBlIK3se2e4/hEfcEejX/arxbx1BJCHBvlEPNnsdw8EXAMPLE
-----END CERTIFICATE-----
다음은 또 다른 예입니다.
-----BEGIN CERTIFICATE-----
Intermediate certificate 2
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Intermediate certificate 1
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Optional: Root certificate
-----END CERTIFICATE-----
-
다음을 선택한 후 다시 다음을 선택합니다.
인증서를 성공적으로 생성하거나 가져온 후에 인증서 ARN을 기록해 둡니다. 사용자 지정 도메인 이름을 설정할 때 필요합니다.