LoginSignup
2

More than 3 years have passed since last update.

ACMの証明書を自動更新できなかった話

Last updated at Posted at 2018-12-14

AWSではSSL証明書も発行できますが、使い方によっては手間取ったりもします。

AWSで発行できる証明書の概要

AWSでは、AWS Certificate Managerといって、SSL証明書を自前で発行する仕組みがあります。一応「無料」ということになってはいるのですが、秘密鍵は利用者にも手に入らないので、単なるEC2などにセットすることはできません。

CloudFrontやELBなどを通じてセットする必要があるので、EC2単機で動かしているサービスなどでは、ELBを追加する分の料金が発生します。

認証方法

もちろん、SSL証明書を出す以上、適切な認証が必要となります。これにもいくつかの方法があって、

  • DNS認証(Route53なら自動設定も可能)
  • Eメール認証

と選ぶことができます。ただ、Eメール認証の場合は証明書が切れるたびに再認証が必要となるので、選べるならDNS認証を選びたいところです。

DNS認証の内容…と失敗

DNS認証を行う場合、CNAMEレコードを適切に設定します、例えば、jkr2255.example.comに証明書を出したい場合、_hogepiyofuga.jkr2255.example.comのCNAMEとして、_foobarbaz.acm-validations.aws1のように設定します(hogepiyofugafoobarbazは、実際にはAWSからランダムな文字列を指定されます)。一度設定したままにしておけば、半永久的に自動更新される、とのことです。

証明書を切らせるトラブルを起こしたこともありますし、更新不要になるのはいいなと思ってDNSを設定しようとしたのですが、当該ドメインはとあるレンタルサーバでも使っているのでDNS設定をそちらでする必要がありました。で、指定のとおりに設定しようとしたのですが、DNSレコードのドメイン名としてアンダーバーで始まるものを受け付けず、問い合わせてもできないという結果が返ってきました(なお、アンダーバーはホスト名としては適切でないものの、ドメイン名としては問題ない、とのことです)。

結論

AWSと他サービスを連携して使う場合、他サービス側から制約がかかってくることもある2


  1. .awsというトップレベルドメインは(現状ではAmazonグループ専用として)実在して、http://acm-validations.aws/にアクセスすると、ACMのページにリダイレクトされます。 

  2. もちろん、AWS以外のDNSでもアンダーバーを通す例もありましたが。 

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2