AWS Certificate Manager (ACM) のSSL証明書をAWSマネージドサービスを駆使して自動取得するクライアント Certman を作った #fukuokarb

ACMSSL証明書取得が本当に毎回面倒だしすぐ忘れるので、いつもの自分の取得方法をCLIツールにしました。

github.com

前提

SSL証明書が必要なドメインを同一アカウント内のRoute53で管理している必要があります。

インストール

$ gem install certman

使い方

例えば、blog.example.comSSL証明書を取得したいときは 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の取得方法を忘れようと思います。