こんにちは。
テックリードのTerukiです。
先月末にAWSのCertificate Managerで証明書のプライベートキーを出力できるようになったというリリースがありました。
これが結構便利なので紹介したいと思います。
何が便利なのか
そもそも普通にAWSのみでシステムを構築していれば証明書をエクスポートしたいという動機は生まれないのですが、何かしらの組み込みの機器だったりがWebサーバ機能を提供していると欲しくなります。
Oh my teethではLAN内のプリンターに対して内部のシステムからHTTPSのAPIを叩くみたいなことをやっているので、その機器にインストールする証明書が必要なわけです。
HTTPSではなくHTTPでアクセスすれば証明書自体は不要ですが、昨今のHTTPS前提の環境ではHTTPのサーバにアクセスすればMixed Contentとなりエラーになるので、実質証明書は必須です。
社内からのアクセス前提ならMDM等でプライベートなルート証明書を全マシンにインストールするという手もなくはなさそうです。
最近はLet's Encryptを使えば無料でパブリックな証明書自体は発行出来るわけですが、組み込みのプリンターへの証明書インストールをスクリプトで完結させられないため、毎回手動での作業が必要になります。
Let's Encryptは三ヶ月毎に作業が必要なので、忘れた頃にやってくる面倒なやつです。
ACMで出力できる証明書は1年間なので、15USDはかかりますが作業回数を減らせるのでだいぶありです。
(Appleが証明書の最大日数を減らそうとしているようですが、少し先の話ではあるので一旦見なかったことにします)
やり方
めちゃくちゃ簡単なので説明不要な気もしますが、一応紹介。
ACMで証明書をリクエストする時にエクスポートを有効にして、後は普通に作成します。
作成した後に画面の右上からエクスポートを選択するとこのような画面になるのでパスフレーズを入力したらダウンロードできます。
個人的に非常にありがたいアップデートでした。
昔からある有償証明書の発行をAWSでできるようになっただけだったりしますが、昔からあるところはURLでの検証だったりメールでの検証だったりでDNSでの認証が使えないことが多かったです。
今回はプライベートIPアドレスを指しているドメインのため、メールやURLでの検証は不可能だったのでした。
今後も嬉しいアップデートがあれば紹介していこうかなと思っています。