AWS Certificate Manager (ACM) のSSL証明書をAWSマネージドサービスを駆使して自動取得するクライアント Certman を作った #fukuokarb
certmanをcodenizeしたらcertmenになる予定 #fukuokarb
— k1LoW (@k1LoW) 2017年3月23日
ACMのSSL証明書取得が本当に毎回面倒だしすぐ忘れるので、いつもの自分の取得方法をCLIツールにしました。
前提
SSL証明書が必要なドメインを同一アカウント内のRoute53で管理している必要があります。
インストール
$ gem install certman
使い方
例えば、blog.example.com
のSSL証明書を取得したいときは certman request blog.example.com
を実行します。
最初にいくつかの注意事項に答えるとCertmanがAWSマネージドサービスを駆使してSSL証明書を取得します。
$ certman request blog.example.com NOTICE! Certman support *us-east-1* only, now. OK? Yes NOTICE! When requesting, Certman replace Active Receipt Rule Set. OK? Yes [✔] [ACM] Check Certificate (successfull) [✔] [Route53] Check Hosted Zone (successfull) [✔] [Route53] Check TXT Record (successfull) [✔] [Route53] Check MX Record (successfull) [✔] [S3] Create Bucket for SES inbound (successfull) [✔] [SES] Create Domain Identity (successfull) [✔] [Route53] Add TXT Record Set to verify Domain Identity (successfull) [✔] [SES] Check Domain Identity Status *verified* (successfull) [✔] [Route53] Add MX Record Set (successfull) [✔] [SES] Create Receipt Rule (successfull) [✔] [ACM] Request Certificate (successfull) [✔] [S3] Check approval mail (will take about 30 min) (successfull) [✔] [SES] Remove Receipt rule (successfull) [✔] [Route53] Remove Record Set (successfull) [✔] [SES] Remove Verified Domain Identiry (successfull) [✔] [S3] Delete Bucket (successfull) Done. certificate_arn: arn:aws:acm:us-east-1:0123456789:certificate/123abcd4-5e67-8f90-123a-4567bc89d01
完了までに約30分かかりますが、マネジメントコンソールでポチポチやるよりずっとマシです。
証明書を削除したいときは certman delete
コマンドを実行します
$ certman delete blog.example.com [✔] [ACM] Delete Certificate (successfull) Done.
途中で失敗したときのRollbackをもう少しサポートしたいと思いますが、普通に使えるのではないかと思います。
というわけで
ACMの取得方法を忘れようと思います。