ACM(AWS Certificate Manager) †
- メリット
- [AMAZON_ISSUED] 自動更新してくれる。無料
- [IMPORTED] iamを変更する権限が不用。PowerUserでもSSL証明書を更新できる。
- [IMPORTED] 同アカウント、同リージョンの場合、SSL証明書更新時に参照している全てのリソースが更新される。iamにuploadしているSSL証明書は、ELB毎に切り替える必要があったので更新漏れが出る。
- 注意点
- ACMで発行した場合、SSL証明書をエクスポートできないため、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アカウントから参照する事は可能か?
トラブルシューティング †
Validation recordは重複する †
- ACMは各リージョン毎に設定するが、同じドメインのSSL証明書をACMで発行すると、DNSに登録するValidation recordが重複する。一つあれば良いようだ。
- コードで管理する時に、同名のRoute53 recordが存在するとエラーになる。そのため、route53 recordに登録する/しないを選択するフラグが必要になる。
Private CA †
AWSのROOT CAが使えるかの検証 †
aws-cert-utils: SSL証明書の一括管理 †
昔はIAMにSSL証明書をアップロードしていたが、今はACMを使う事が推奨されている。
awscliでの更新 †
- awscli v2.0.0だとSSL証明書のインポートに失敗するので、「fileb://」を指定する。v1でもこの指定は使える
- SSL証明書更新時は 「--certificate-arn $ARN」で既存ARN指定する事で更新される。この場合、同じARNを使用しているELB,ALB側は変更なしで更新される。
- 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証明書を設定できる。