Memo/AmazonWebServices/ACM

https://dexlab.net:443/pukiwiki/index.php?Memo/AmazonWebServices/ACM
 

ACM(AWS Certificate Manager)

  • メリット
    • iamを変更する権限が不用。PowerUserでもSSL証明書を更新できる。
    • 同アカウント、同リージョンの場合、SSL証明書更新時に参照している全てのリソースが更新される。iamにuploadしているSSL証明書は、ELB毎に切り替える必要があったので更新漏れが出る。
  • 注意点
    • AWSから外にエクスポートできないため、apache/nginx等に設定する事はできない。ELB/ALB等に使う用途向け
    • 既存のSSL証明書をインポートする事はできる。
    • 既存のSSL証明書をARN指定して再インポートする事で、同ARNを指定しているELB, ALB側は無変更で新しいSSL証明書に切り替わる。
    • us-east-1のACMしか使えないリソースがある。api-gateway, cloudfront等
    • Q: 複数の AWS リージョンで同じ ACM 証明書を使用できますか?
      • > 証明書を異なるリージョンにある同じサイト (完全修飾ドメイン名、つまり 1 つまたは一連の FQDN が同じ) に対して Elastic Load Balancing とともに使用する場合、使用するリージョンごとに新しい証明書をリクエストすることが必要になります。
    • 他のAWSアカウントから参照する事は可能か?

AWSのROOT CAが使えるかの検証


aws-cert-utils: SSL証明書の一括管理

昔はIAMにSSL証明書をアップロードしていたが、今はACMを使う事が推奨されている。


awscliでの更新

  • 初回登録時
    SSL_CERT=example.com
    AWS_PROFILE=example
    AWS_REGION=ap-northeast-1
    aws acm import-certificate \
      --private-key file://${SSL_CERT}.key \
      --certificate file://${SSL_CERT}.body.crt \
      --certificate-chain file://${SSL_CERT}.chain.crt \
      --region $AWS_REGION \
      --profile $AWS_PROFILE
    
    {
        "CertificateArn": "arn:aws:acm:ap-northeast-1:1234567890:certificate/xxxx-xxxx-xxxx-xxxx-xxxx"
    }
  • SSL証明書更新時は 「--certificate-arn $ARN」で既存ARN指定する事で更新される。この場合、同じARNを使用しているELB,ALB側は変更なしで更新される。
    • 「最大40分かかる」との記載がある
  • opensslコマンドでの有効期限確認
    ENDPOINT=www.example.com:443
    DAYS=30
    openssl s_client -showcerts -connect $ENDPOINT -servername $ENDPOINT < /dev/null 2>&1 | openssl x509 -checkend $(( 86400 * $DAYS )) -enddate
    
    notAfter=Nov 28 12:00:00 2018 GMT
    Certificate will not expire
  • API gateway
    • ACM にインポートされた証明書を更新 「プロセスが終了するには約40分かかります」と記載がある。
    • 既存ARNに対して更新した場合、CloudFrontにキャッシュされているようで、opensslコマンドで確認できるまでに2時間以上かかった。

ワイルドカードSSL証明書

  • *.example.comで申請すると、「example.com」は保護されない
  • *.example.comとexample.comをAdditional namesで同時に申請する事ができる。
  • CLBには1ポート(tcp/443)に一つのSSL証明書しか設定できない。
  • ALBはSNI対応しているので、同一ポートに異なるSSL証明書を設定できる。
  • awscliの場合
    aws acm request-certificate \
     --domain-name "*.example.com" \
     --subject-alternative-names example.com \
     --domain-validation-options "DomainName=*.example.com,ValidationDomain=example.com" \
     --profile example \
     --region ap-northeast-1

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-08-19 (月) 18:52:19 (110d)