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_missingyesまたは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_sourceyesに設定します。これにより、設定されたcertbot_repoがクローンされ、certbot_version設定が尊重されます。certbot_keep_updatedyesに設定されている場合、このロールが実行されるたびにリポジトリが更新されます。

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

新しい証明書を追加するプロセスを完全に自動化したいが、このロールのビルトイン機能を使用したくない場合は、コマンドラインオプションを使用して登録、利用規約への同意、次にスタンドアロンサーバーを使用して証明書を生成することができます:

  1. ポート80と443(Apache、Nginx、Varnishなど)でリスンしているサービスを停止します。
  2. certbot register --agree-tos --email [[email protected]]のように登録します。
    • 注: 今後、同じサーバーで追加の証明書を生成する場合、このステップは不要です。
  3. このサーバーにDNSがポイントしているドメイン用の証明書を生成します: certbot certonly --noninteractive --standalone -d example.com -d www.example.com
  4. 前にポート80と443でリスンしていたサービスを再起動します。
  5. ウェブサーバーの仮想ホストTLS設定を、certbotコマンドで渡したドメインの新しい証明書(fullchain.pem)および秘密鍵(privkey.pem)にポイントします。
  6. ウェブサーバーをリロードまたは再起動して、新しい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
ライセンス
mit
ダウンロード
4.9k
所有者
Linux, open source, containers, docker. Nerd, with a big interest in the philosophical, biological, social, and cultural aspects of human life.