エンジニャーリング

技術ときどきネコ

AWSのACMで作ったプライベート認証局から取得したプライベートキーからパスフレーズを抜く

通常の ACM (AWS Certificate Manager) で取得した Public な SSL/TLS証明書は、Private Key のダウンロードができません。

そこで、AWSACM (AWS Certificate Manager) で PrivateCA をたてて、Private な SSL/TLS証明書を発行し、この PrivateCA で発行した証明書から Private Key のダウンロードをすることにした。

作った証明書
f:id:taiyakikuroann:20210718144013p:plain

エクスポートを選択
f:id:taiyakikuroann:20210718144026p:plain

ここでパスフレーズを設定
f:id:taiyakikuroann:20210718144034p:plain

ダウンロードする
f:id:taiyakikuroann:20210718144046p:plain

証明書をクラインと証明書として使いたい場合にプログラムに組み込むとき、このダウンロードした Private Key はパスフレーズで保護されていて、使い勝手が悪い。
curlの場合はオプションでパスフレーズを渡せばそのまま使えるが、そのままcurlを叩くのもちょっと違う。

そこで、opensslコマンドを使って、このパスフレーズを抜いた形で保存し直す。

openssl rsa -in private.key -out private_no_pass.key -passin pass:[指定したパスフレーズ]

private_no_pass.key というパスフレーズが解除されたプライベートキーが作成できた。

ECSなどを使う場合、CodeBuildなどでビルド中に非公開のS3バケットから取得してパスフレーズを解除して取り込むなどの処理を追加すれば、よりセキュアな形でのPrivate Keyの管理ができて良いかと思います。