thiagoalmeidasa.certbot_route53
Ansibleロール: Certbot (Let's Encrypt用)
Certbot(Let's Encrypt用)をインストールして設定します。
必要条件
ソースからインストールする場合、Gitが必要です。geerlingguy.git
ロールを使ってGitをインストールできます。
一般的に、ソースからインストール(「Gitからのソースインストール」セクションを参照)すると、特に古いOSリリースを使用している場合、CertbotとLet's Encryptの使用体験が改善されます。
ロール変数
変数certbot_install_from_source
は、CertbotをGitからインストールするか、パッケージ管理からインストールするかを制御します。後者がデフォルトで、変数はno
に設定されています。
certbot_auto_renew: true
certbot_auto_renew_user: root
certbot_auto_renew_hour: "3"
certbot_auto_renew_minute: "30"
certbot_auto_renew_options: "--quiet --no-self-upgrade"
デフォルトでは、このロールは指定したユーザーアカウントで毎日指定した時間と分にクロンジョブを設定します。デフォルト設定では、Ansibleのプレイブックで使用するユーザーによって毎日03:30:00にcertbot renew
(またはcertbot-auto renew
)が実行されます。更新はトラフィックの少ない時間に行い、非rootユーザーアカウントによって行うことが推奨されます。
自動証明書生成
現在、このロールを使用して新しい証明書を生成するための標準的な方法はstandalone
のみです。将来的に他の方法(例えば、nginxやapacheを使用し、webrootを使う方法)が追加されるかもしれません。
完全な例については: molecule/default/playbook-standalone-nginx-aws.ymlにある完全機能のテストプレイブックを参照してください。
certbot_create_if_missing: false
certbot_create_method: certonly
certbot_create_if_missing
をyes
またはTrue
に設定すると、このロールが証明書を生成します。証明書生成に使用する方法は、certbot_create_method
変数で設定します。現在許可されている値には、certonly
が含まれます。
certbot_admin_email: email@example.com
Let's Encryptの利用規約に同意し、証明書関連の通知を受け取るために使用するメールアドレスです。あなたまたはあなたの組織が定期的に確認するメールアドレスにカスタマイズして設定する必要があります。
certbot_certs: []
# - email: [email protected]
# domains:
# - example1.com
# - example2.com
# - domains:
# - example3.com
証明書を生成する対象となるドメイン(およびその他のデータ)のリストです。リストの任意の項目にemail
キーを追加して、certbot_admin_email
を上書きできます。
certbot_create_command: "{{ certbot_script }} certonly --standalone --noninteractive --agree-tos --email {{ cert_item.email | default(certbot_admin_email) }} -d {{ cert_item.domains | join(',') }}"
certbot_create_command
は、証明書を生成するために使用されるコマンドを定義します。
Gitからのソースインストール
必要に応じて、GitのソースリポジトリからCertbotをインストールできます。これは、古いディストリビューションでCertbotパッケージが利用できない場合(例:CentOS < 7、Ubuntu < 16.10、Debian < 8)に特に有用です。
certbot_install_from_source: false
certbot_repo: https://github.com/certbot/certbot.git
certbot_version: master
certbot_keep_updated: true
Certbot Gitリポジトリのオプションです。ソースからインストールするには、certbot_install_from_source
をyes
に設定します。これにより、設定されたcertbot_repo
がクローンされ、certbot_version
設定が尊重されます。certbot_keep_updated
がyes
に設定されている場合、このロールが実行されるたびにリポジトリが更新されます。
certbot_dir: /opt/certbot
Certbotがクローンされるディレクトリです。
ワイルドカード証明書
Let's Encryptはワイルドカード証明書の生成をサポートしていますが、生成と使用のプロセスは少し複雑です。このロールを使用してワイルドカード証明書を維持する方法の例については、このプルリクエストのコメントを参照してください。
Michael Porterは、AnsibleでLet's Encryptワイルドカード証明書を作成する方法も提案しています。
依存関係
なし。
例プレイブック
- hosts: servers
vars:
certbot_auto_renew_user: your_username_here
certbot_auto_renew_minute: "20"
certbot_auto_renew_hour: "5"
roles:
- thiagoalmeidasa.certbot_route53
tests/
ディレクトリ内の他の例もご覧ください。
certbotを使って手動で証明書を作成する
注: このロールを使用して証明書を自動生成できます。「自動証明書生成」のドキュメントを参照してください。
certbot
(またはcertbot-auto
)スクリプトを使って手動で証明書を作成できます(Ubuntu 16.04ではletsencrypt
を使用するか、ソース/Gitからインストールしている場合は/opt/certbot/certbot-auto
を使用します)。以下はいくつかの例コマンドです。
# すべてのApache仮想ホストに証明書を自動的に追加します(注意して使用してください!)。
certbot --apache
# 証明書を生成しますが、Apache設定を変更しません(安全です)。
certbot --apache certonly
新しい証明書を追加するプロセスを完全に自動化したいが、このロールのビルトイン機能を使用したくない場合は、コマンドラインオプションを使用して登録、利用規約への同意、次にスタンドアロンサーバーを使用して証明書を生成することができます:
- ポート80と443(Apache、Nginx、Varnishなど)でリスンしているサービスを停止します。
certbot register --agree-tos --email [[email protected]]
のように登録します。- 注: 今後、同じサーバーで追加の証明書を生成する場合、このステップは不要です。
- このサーバーにDNSがポイントしているドメイン用の証明書を生成します:
certbot certonly --noninteractive --standalone -d example.com -d www.example.com
- 前にポート80と443でリスンしていたサービスを再起動します。
- ウェブサーバーの仮想ホストTLS設定を、
certbot
コマンドで渡したドメインの新しい証明書(fullchain.pem
)および秘密鍵(privkey.pem
)にポイントします。 - ウェブサーバーをリロードまたは再起動して、新しいHTTPS仮想ホスト設定を使用します。
Certbotの証明書自動更新
デフォルトでは、このロールは、選択した時間と分に毎日1回、すべてのインストールされた証明書を更新するクロンジョブを追加します。
証明書を実際に更新せずに自動更新テストを行うには、次のコマンドを使用します:
/opt/certbot/certbot-auto renew --dry-run
完全なドキュメントとオプションについては、Certbotの公式サイトを参照してください。
ライセンス
MIT / BSD
Installs and configures Certbot (for Let's Encrypt).
ansible-galaxy install thiagoalmeidasa.certbot_route53