Ansible Towerで証明書のCSRを作成してみる


そろそろこのホームページのサーバ証明書を更新する時期になったのですが 「Ansible Towerでサーバ証明書のCSRを発行できれば運用便利かも」と思ってやってみました。

環境

バージョン

項目 バージョン 役割
RHEL 7.6 Ansible Towerホスト
Ansible Tower 3.5.1
CentOS 7.6 Webサーバ

環境図

ここでやろうとしていることは以下のようなことです。

番号 説明
証明書作成者がAnsible Towerでテンプレートを実行
Ansible TowerがWebサーバ上で証明書を作成する
作成した秘密鍵とCSRのファイルダウンロードURLを表示
ダウンロードする

Ansible Towerで証明書を作成した場合、保存先をどうするか?という課題があります。
ここでは、簡単に動作確認をするためWebサーバを立てて、そこで証明書の作成・保存をして証明書のダウンロードまでできるようにします。
※本来はセキュリティを考えた運用にする必要があります。

準備

Webサーバ

必要なパッケージおよびモジュールをインストールします。

Apacheの設定を変更します。
秘密鍵とCSRのファイルをダウンロード出来るように AddType を追加します。

Apacheを起動します。

ひとまずここでは、作成した秘密鍵・CSRが5分以上経過したら自動で削除されるようにします。

Ansible Tower

Playbook

ここでは、手動でPlaybookを保存するディレクトリとPlaybookを作成します。

Playbookの中身は以下のようになっています。

変数 説明
dir_name 証明書関連ファイルを保存するディレクトリ名
root_dir 証明書関連ファイルを保存するディレクトリのフルパス
private_key_password 秘密鍵のパスワード
private_key_chipher 秘密鍵のサイファー
private_key_type 秘密鍵のタイプ
private_key_size 秘密鍵のサイズ
csr_country_name 国名
csr_state_or_province_name 都道府県
csr_locality_name 市区町村
csr_organization_name 組織名(会社名)
csr_organizational_unit_name 部門名
common_name コモンネーム(FQDN)
csr_email Emailアドレス
csr_key_usage キー使用拡張
csr_extended_key_usage 拡張キー

プロジェクト設定

テンプレート設定

テンプレートには以下のSURVEYを設定しています。

実行

Ansible Towerで秘密鍵とCSRを作成してみます。
以下はデモ動画です。

Demo to Generate certificate signing request file with Ansible Tower from sky_joker on Vimeo.

CSR確認

作成したCSRの中身を確認してみます。

きちんと作られていますね 🙂

最後に

Ansible Towerで秘密鍵とCSR作成をして保存先のサーバからダウンロードして取得することができました 🙂
CSRの作成は、今までopensslコマンドをペチペチ叩いていましたが、Ansible TowerではSURVEYで指定したパラメーターを入力するだけで簡単に作れました。
これで誰でも簡単に作れますね。

今回はCSRまでしか作りませんでしたが、自己証明書やPKCS12なども簡単に作れるので証明書作成はAnsible Towerで標準化できますね。
環境によって今までは証明書の作成するホストや保存先・取扱などバラバラになっているところは、これをすることでUI(オペレーション)や保存先の標準化ができ運用ルールの整理も比較的楽になるのではないでしょうか。

以上、Ansible Towerを使った証明書作成の例でした!

みんなでハッピーオートメーション!

参考

Leave a Reply

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください