L-P.simp_le
ansible-role-simp_le
Debian/Ubuntuサーバーにsim_leをインストールし、証明書を生成し、自動的に更新します。
更新は毎日、Ansibleのリモートユーザーによって実行されるcronジョブを通じて行われます。
Ansible Galaxyでの役割を確認してください: L-P.simp_le
注意: 私はacmetoolの使用を始め、Ubuntu 16.04以上の新しいサーバーにはそれを使うことをお勧めします。
必要な変数
証明書を生成するための仮想ホストのリスト:
simp_le_vhosts:
- domains: ["www.example.com", "example.com"]
root: "/path/to/challenges" # HTTPでアクセス可能
output: "/path/to/output/dir" # 証明書を書き込む場所
LetsEncryptがあなたを識別し、更新通知を送るために使うメールアドレス:
simp_le_email: "[email protected]"
ホストに設定できるオプションのキーが3つあります:
user
とgroup
:鍵、チャレンジ、およびその親ディレクトリの所有者を指定します。デフォルトの所有者はwww-data:www-data
です。extra_args
:simp_leに追加の引数を渡すために使います。これにより、LetsEncryptのステージングサーバーを使用したり、証明書を更新する際に鍵ペアを再利用するように指示することができます。これはTLSAレコードを使用する場合に便利です。この場合、Selectorタイプ1(SubjectPublicKeyInfo)を使用すると、証明書が更新されてもTLSAレコードを変更する必要がありません。update_action
:証明書が更新されたときに実行するコマンド、例:systemctl restart apache2
例:
simp_le_vhosts:
- domains: ["smtp.example.com", "mail.example.com"]
root: "/path/to/challenges"
output: "/path/to/output/dir"
user: "Debian-exim"
group: "Debian-exim"
extra_args: "--reuse_key --server https://acme-staging.api.letsencrypt.org/directory"
update_action: "/bin/systemctl restart exim4"
追加の設定についてはdefaults/main.yml
を参照してください。
サーバー設定
サーバーはHTTP経由でチャレンジファイルを提供する必要があります。以下は_http_のための設定例です。HTTPリクエストをHTTPSにリダイレクトし、チャレンジを除外します:
location /.well-known/acme-challenge/ {
alias /var/www/challenges/.well-known/acme-challenge/;
try_files $uri @forward_https;
}
location @forward_https {
return 301 https://example.com$request_uri;
}
location / {
return 301 https://example.com$request_uri;
}
例のプレイブック
- hosts: all
roles:
- {role: "L-P.simp_le", become: no}
ほとんどの操作はsudo
なしで行われますが、適切な権限と所有者で各ディレクトリを作成するために使用されます。