AWS CLI를 사용하여 AWS CloudFront 사용자 지정 SSL/TLS 인증서 업데이트

6011 단어 sslawsbashcloudfront
뭐 ?

AWS CLI를 사용하여 SSL/TLS 인증서를 프로그래밍 방식으로 업데이트하기 위해 따라야 할 단계에 대한 간단한 안내서입니다.

왜요 ?

그것에 대한 공식 문서는 완전히 엉망이기 때문에 다른 사람들과 공유하고 시간을 절약하고 싶습니다.

어떻게 ?

예를 들어 Let's Encrypt를 사용하여 사용자 지정 인증서를 생성한 후에는 다음 AWS CLI 명령을 실행하여 bash를 사용하여 업데이트할 수 있습니다.


# Use any name but prefer to use one based on a timestamp since they cannot be repeated on every update
AWS_MY_CERT_NAME=my-cert-$(date +%Y%m%d)

# Set the CloudFront distribution we want to update (found at AWS console)
MY_CLOUDFRONT_ID=EV40L17AXPTKC

# Upload the custom certificate to IAM (using ACM does not work)
aws iam upload-server-certificate --server-certificate-name $AWS_MY_CERT_NAME --certificate-body file://my-cert.pem --private-key file://my-cert-privkey.pem --certificate-chain file://my-cert-chain.pem --path /cloudfront/

# Get certificate ID for the update
AWS_MY_CERT_ID=$(aws iam get-server-certificate --server-certificate-name $AWS_MY_CERT_NAME --query "ServerCertificate.ServerCertificateMetadata.ServerCertificateId" --output text)

# Here the trick: load the current configuration to patch it on the fly (AWS has no other option currently)
aws cloudfront get-distribution-config --id $MY_CLOUDFRONT_ID --query DistributionConfig > config.json

sed -i.bak "s/.*\"IAMCertificateId\".*/\"IAMCertificateId\": \"$AWS_MY_CERT_ID\",/g" config.json
sed -i.bak "s/.*\"Certificate\".*/\"Certificate\": \"$AWS_MY_CERT_ID\",/g" config.json

aws cloudfront update-distribution --id $MY_CLOUDFRONT_ID --distribution-config file://config.json


참고: /cloudfront/ 경로는 CloudFront에서 사용할 수 있는 인증서를 만드는 데 중요합니다.

언제 ?

이 명령을 bash 스크립트 파일에 추가하여 매달 cron 구성을 사용하여 실행할 수 있습니다(또는 업데이트 빈도에 따라 더 빨리).

누구 ?

이러한 명령은 다음 블로그 및 참조를 기반으로 합니다.
  • https://docs.aws.amazon.com/cli/latest/reference/cloudfront/index.html
  • https://docs.aws.amazon.com/cli/latest/reference/cloudfront/update-distribution.html
  • https://www.reddit.com/r/aws/comments/5jm7wd/why_is_my_custom_ssl_cert_not_available_when/
  • https://aws.amazon.com/premiumsupport/knowledge-center/install-ssl-cloudfront/
  • https://intellipaat.com/community/2745/unable-to-select-custom-ssl-certificate-stored-in-aws-iam
  • https://aws.amazon.com/premiumsupport/knowledge-center/custom-ssl-certificate-cloudfront/
  • https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output.html#cli-usage-output-filter
  • https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output.html#cli-usage-output-format
  • https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-shorthand.html
  • https://docs.aws.amazon.com/cli/latest/reference/cloudfront/get-distribution-config.html
  • https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cnames-and-https-rotate-certificates.html
  • 좋은 웹페이지 즐겨찾기