내용으로 건너뛰기

CloudFront 배포에 사용자 지정 SSL/TLS 인증서를 선택할 수 없는 이유는 무엇입니까?

3분 분량
0

Amazon CloudFront 배포를 설정할 때 사용자 지정 SSL/TLS 인증서를 사용하고 싶지만 선택할 수 있는 옵션이 없습니다.

간략한 설명

다음과 같은 시나리오에서는 CloudFront 배포에 대한 사용자 지정 SSL/TLS 인증서 옵션이 표시되지 않을 수 있습니다.

  • 인증서가 다른 AWS 리전에 저장되어 있습니다.
  • AWS Certificate Manager(ACM) 인증서 검증에 실패했습니다.
  • 인증서가 만료되었습니다.
  • 인증서를 보거나 선택하는 데 필요한 AWS Identity and Access Management(IAM) 권한이 없습니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

인증서 구성 확인

CloudFront 배포 구성에 따라 다음 문제 해결 작업을 수행하십시오.

ACM 인증서

ACM에서 요청했거나 ACM으로 가져온 인증서를 사용하는 경우 인증서가 다음 요구 사항을 충족하는지 확인하십시오.

자세한 내용은 로드 밸런서 또는 CloudFront 배포용으로 가져온 ACM 인증서를 찾을 수 없는 이유는 무엇입니까?를 참조하십시오.

IAM으로 가져온 인증서

SSL/TLS 인증서를 IAM으로 가져온 경우 올바른 CloudFront 경로를 사용했는지 확인하십시오. 다음 upload-server-certificate AWS CLI 명령을 실행하여 특정 CloudFront 경로로 인증서를 업로드합니다.

aws iam upload-server-certificate
 --server-certificate-name CertificateName
 --certificate-body file://public_key_certificate_file.pem
 --private-key file://privatekey.pem
 --certificate-chain file://certificate_chain_file.pem
 --path /cloudfront/DistributionName/

참고: CertificateName을 인증서 이름으로, file://public_key_certificate_file을 퍼블릭 키로, file://privatekey.pem을 프라이빗 키로 바꾸십시오. 또한 file://certificate_chain_file을 인증서 체인으로 바꾸고 DistributionName을 CloudFront 배포 이름으로 바꾸십시오.

CloudFront 경로를 사용하여 인증서를 업로드하지 않은 경우 다음 update-server-certificate 명령을 실행하여 해당 경로로 인증서를 업데이트하십시오.

aws iam update-server-certificate
 --server-certificate-name CertificateName
 --new-path /cloudfront/DistributionName/

참고: CertificateName을 인증서 이름으로 바꾸고 DistributionName을 CloudFront 배포 이름으로 바꾸십시오. CloudFront 배포에 인증서를 추가하면 배포 상태가 배포됨에서 진행 중으로 변경됩니다. CloudFront가 모든 엣지 로케이션에 변경 사항을 배포하면 배포 상태가 배포됨으로 다시 변경됩니다. 일반적인 배포 시간은 5분입니다.

인증서 권한 확인

ACM 또는 IAM의 인증서를 CloudFront 배포에 할당할 때 필요한 권한이 있는지 확인하십시오.

인증서를 할당하는 데 사용하는 IAM 사용자 또는 역할에는 다음 권한이 있어야 합니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "acm:ListCertificates",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudfront:ListDistributions",
                "cloudfront:ListStreamingDistributions"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudfront:List*",
                "cloudfront:Get*",
                "cloudfront:Update*"
            ],
            "Resource": "arn:aws:cloudfront::account-id:distribution/distribution-id"
        },
        {
            "Effect": "Allow",
            "Action": "iam:ListServerCertificates",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetServerCertificate",
                "iam:UpdateServerCertificate"
            ],
            "Resource": "arn:aws:iam::account-id:server-certificate/certificate-name-with-path"
        }
    ]
}

추가 문제 해결

SSL/TLS 인증서를 IAM으로 가져온 경우 인증서 체인이 올바른 순서이며 인증서가 만료되지 않았는지 확인하십시오. 자세한 내용은 IAM에 SSL 인증서를 업로드하고 가져오려면 어떻게 해야 합니까?를 참조하십시오.

CloudFront 배포에서 여러 도메인 이름을 사용하려면 필요한 도메인을 모두 포함하는 단일 SSL/TLS 인증서를 요청하거나 생성하십시오. 기본적으로 ACM은 인증서마다 최대 100개의 도메인을 지원합니다.

참고: 개별 CloudFront 배포에는 SSL/TLS 인증서를 두 개 이상 연결할 수 없습니다.

관련 정보

ACM을 사용하여 CloudFront 배포 도메인 이름 오류를 해결하려면 어떻게 해야 합니까?"InvalidViewerCertificate"

CloudFront에서 SSL/TLS 인증서를 사용하기 위한 요구 사항