Elastic Load Balancing(ELB)에서 상호 TLS(mTLS)에 대한 인증서 취소 목록(CRL)을 구성하고 싶습니다.
간략한 설명
Application Load Balancer에서 mTLS를 사용하면 타사 인증 기관(CA)의 인증서로 클라이언트를 인증할 수 있습니다. 또한 AWS Private CA를 사용하여 인증서로 클라이언트를 인증할 수 있습니다. 인증서 액세스를 취소하려면 로드 밸런싱 트러스트 저장소에서 certificate revocation list(CRL)(인증서 취소 목록(CRL))을 생성합니다.
해결 방법
**참고:**타사 인증 기관의 경우 다음 해결 방법에 있는 PEM 인코딩 CRL을 Amazon S3 버킷으로 업로드 섹션으로 건너뛰십시오.
AWS Private CA에서 발급한 클라이언트 인증서를 취소하려면 다음 단계를 완료하십시오.
클라이언트 인증서를 발급한 CA에서 CRL 배포 옵션을 활성화합니다.
클라이언트 인증서를 발급한 CA에서 CRL 배포 옵션을 활성화하려면 다음 단계를 완료하십시오.
- AWS Private CA 콘솔을 엽니다.
- 클라이언트 인증서를 발급한 인증 기관을 선택합니다.
- **Revocation configuration(취소 구성)**을 수정한 다음 CRL distribution(CRL 배포) 옵션을 활성화합니다.
- 필수 액세스 정책을 연결하려면 새 Amazon Simple Storage Service(Amazon S3) 버킷을 생성하거나 기존 Amazon S3 버킷을 사용합니다.
- acm-pca-permission-test 파일이 Amazon S3 버킷에 생성되었는지 확인하려면 텍스트 파일을 생성합니다. **This is a test file to check the access permissions of the bucket(버킷의 액세스 권한을 확인하기 위한 테스트 파일입니다)**라는 내용의 텍스트 파일을 생성합니다.
인증서 취소
참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
클라이언트 인증서의 액세스를 취소하려면 다음 단계를 완료하십시오.
-
클라이언트 인증서 일련 번호를 찾아 주석을 추가합니다. 이 일련 번호는 다음 단계에서 사용됩니다.
openssl x509 -in client_certertificate.cert -text -noout | grep -A 1 "Serial Number"
-
(선택 사항) Application Load Balancer 연결 로그 필드 leaf_client_cert_serial_number에서 클라이언트 인증서 일련 번호를 찾습니다.
-
인증서 액세스를 취소하려면 acm-pca 명령을 사용합니다.
참고:****example-arn-ca-issuer를 인증 기관 ARN으로 바꾸고 example-cert-sn은 인증서 일련 번호로, example-reason은 취소 이유로 바꿉니다.
aws acm-pca revoke-certificate \
--certificate-authority-arn <example-arn-ca-issuer> \
--certificate-serial <example-cert-sn> \
--revocation-reason "example-reason"
-
액세스를 취소하려는 모든 클라이언트 인증서에 대해 앞의 2단계와 3단계를 반복합니다.
**참고:**인증서가 취소된 후 AWS Private CA가 Amazon S3 버킷의 CRL을 업데이트하는 데 최대 30분이 걸립니다.
생성된 CRL을 변환합니다.
**참고:AWS CLI 명령을 실행할 때 오류가 발생하면, **AWS CLI 오류 문제 해결을 참조하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
생성된 CRL을 변환하려면 다음 단계를 완료하십시오.
-
Amazon S3 콘솔을 엽니다.
-
이전에 사용한 Amazon S3 버킷에서 CRL 파일을 다운로드합니다. 또는 AWS CLI를 사용하여 Amazon S3 버킷 목록을 만들고 작업 디렉터리에 다운로드합니다.
참고:****example-bucket을 Amazon S3 버킷으로 바꾸고 example-crl-file을 CRL 파일로 바꿉니다.
aws s3 ls s3://<example-bucket>/crl/
aws s3 cp s3://<example-bucket>/crl/<example-crl-file>.crl ./revoke_list.crl
-
다운로드한 CRL 파일의 인코딩을 DER에서 PEM으로 변환합니다.
openssl crl -in example-revoke-list.crl -inform DER -out revoke_list_in_pem.crl
PEM으로 인코딩된 CRL을 Amazon S3 버킷에 업로드합니다.
**참고:AWS CLI 명령을 실행할 때 오류가 발생하면, **AWS CLI 오류 문제 해결을 참조하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
PEM으로 인코딩된 CRL을 Amazon S3 버킷에 업로드하려면 다음 단계를 완료하십시오.
- Amazon S3 콘솔을 엽니다.
- CRL 파일을 Amazon S3 버킷에 업로드합니다. 또는 AWS CLI를 사용하여 CRL 파일을 작업 디렉터리에 업로드합니다.
참고:****example-bucket을 Amazon S3 버킷으로 바꿉니다.
aws s3 cp revoked_list_in_pem.crl s3://<example-bucket>/crl/revoked_list_in_pem.crl
CRL로 로드 밸런싱 트러스트 저장소 취소 목록 업데이트
**참고:AWS CLI 명령을 실행할 때 오류가 발생하면, **AWS CLI 오류 문제 해결을 참조하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
CRL로 로드 밸런싱 트러스트 저장소를 업데이트하려면 다음 단계를 완료하십시오.
-
Amazon Elastic Compute Cloud(Amazon EC2) 콘솔을 엽니다.
-
Trust Stores로 이동해서 업데이트하려는 트러스트 저장소를 선택합니다.
-
취소 목록을 추가하려면 추가하려는 CRL 파일의 Amazon S3 버킷 URL을 입력합니다. 또는 elbv2 명령을 사용하여 트러스트 저장소 취소를 업데이트합니다.
참고:****example-trust-store-arn을 트러스트 저장소의 ARN으로 바꾸고 example-bucket을 Amazon S3 버킷으로 바꿉니다.
aws elbv2 add-trust-store-revocations \
--trust-store-arn <example-trust-store-arn> \
--revocation-contents S3Bucket=<example-bucket>,S3Key=/crl/revoked_list_in_pem.crl,RevocationType=CRL
-
CRL이 적용되었는지 확인하려면 출력을 검토해서 취소된 항목의 숫자가 증가했는지 식별합니다.
인증서 취소 목록을 트러스트 저장소에 추가하면 취소 ID가 부여됩니다. 트러스트 저장소에 취소 목록이 추가될 때마다 취소 ID가 증가하며 변경할 수 없습니다. 인증서 취소 목록을 삭제하면 취소 ID도 삭제되며, 트러스트 저장소 수명 기간 동안 재사용되지 않습니다.
관련 정보
CA 취소 구성 업데이트(콘솔)
revoke-certificate
프라이빗 인증서 취소
add-trust-store-revocations