coopdevs.certbot_nginx
Certbot NGINX
これは、Ubuntu 16.04 および Ubuntu 18.04 に certbot
と NGINX プラグインをインストールするためのシンプルな Ansible ロールです。
このロールは以下のことを行います:
certbot
の PPA リポジトリを追加します。certbot
とpython-certbot-nginx
パッケージをインストールします。certbot
パッケージはrenew
の cron ジョブと systemd タイマーを追加します(詳細情報)。- 指定された
domain_name
に対して Let's Encrypt の SSL 証明書を生成します。
警告
すでに /etc/letsencrypt
内のファイルを指しているサイトが Nginx にインストールされている場合、証明書の作成タスクは失敗します(例)。
一般的に、Nginx をインストールおよび設定する他のロールの前にこのロールを実行することが推奨されます。
ロール変数
domain_name: www.mydomain.io
letsencrypt_email: [email protected]
certbot_nginx_cert_name: mycert # オプション
certbot_version: 0.31.0-1+ubuntu{{ ansible_distribution_version }}.1+certbot+1 # オプション
certbot_nginx_version: 0.31.0-1+ubuntu{{ ansible_distribution_version }}.1+certbot+1 # オプション
もし設定した場合、certbot_nginx_cert_name
の値は certbot の --cert-name
引数に渡され、certbot delete
などのコマンドで証明書を識別するために使用されます。 certbot certificates
を実行すると、この名前で識別された証明書のリストが表示されます。この名前はまた、証明書のファイルパスとして /etc/letsencrypt/live/
に使用されます。
例プレイブック - 単一の証明書
# プレイブック
- hosts: servers
roles:
- role: coopdevs.certbot_nginx
vars:
domain_name: www.mydomain.io
letsencrypt_email: [email protected]
例プレイブック - 複数の証明書を作成
同じホストで複数の証明書を生成および管理できます。
domain_names
変数を定義し、このロールをループ内で含むロールを設定できます。
# プレイブック
- hosts: servers
roles:
- role: coopdevs.certbot_nginx
vars:
letsencrypt_email: [email protected]
- role: certificates
vars:
domain_names:
- community.coopdevs.org
- forms.coopdevs.org
証明書を生成するために certbot_nginx
ロールを含むカスタムロールを作成します:
# certificates.yml ロール
---
- name: SSL証明書のインストール
include_role:
name: vendor/coopdevs.certbot_nginx
tasks_from: certificate.yml
with_items: "{{ domain_names }}"
loop_control:
loop_var: domain_name
loop_control
を宣言してwith_item
ループのitem
変数をloop_var
値であるdomain_name
にマッピングする必要があります。loop_control
ドキュメントを参照してください。
既存の証明書の更新
証明書が作成されてからサイトの詳細が変更された場合、ドメインリストを更新できます。ロールは証明書に存在するドメインと提供されたドメインリストの違いをチェックし、証明書を更新する必要があるかどうかを選択します。更新プロセスを強制したい場合は、certbot_force_update: true
を定義するか、コマンドラインで --extra-vars "certbot_force_update=true"
を渡すことで可能です。
Let's Encrypt ステージング環境
このロールには letsencrypt_staging
変数が含まれており、デフォルトは no
です。開発やデバッグの目的で、yes
に設定することができます。たとえば、コマンドラインで変数を渡すのように --extra-vars "letsencrypt_staging=yes"
とします。
これにより、Let's Encrypt ステージング環境が使用され、レート制限に直面する可能性が低くなります。
ライセンス
BSD
著者情報
Coopdevs http://coopdevs.org
free software for Social and Solidarity Economy
ansible-galaxy install coopdevs.certbot_nginx