Certbot
Let’s Encrypt はフリーかつ自動化されたオープンな認証局です。コマンドラインから有効な ssl 証明書を取得できるツールが提供されています。
インストール
letsencrypt パッケージをインストールしてください。
A minimal client with manual CSR creation is available at acme-tinyAUR. More integrated clients suitable for scripts are e.g. simp_le-gitAUR and letsencrypt-cliAUR.
公式クライアントを用いて発行された証明書はプラグインを使ってウェブサーバーに自動的に設定・インストールできます:
- Nginx 用の実験的なプラグインは letsencrypt-nginx パッケージに入っています。
- letsencrypt-apache パッケージも存在していますが、Apache HTTP Server を使っている場合の自動インストールは現在 Debian の派生ディストリビューションでしかサポートされていません。
設定
証明を作成・インストールする方法は Let’s Encrypt クライアントのドキュメント を参照してください。証明書の作成方法がはっきりしたら、この wiki にも記載します。
手動
ウェブサーバーのプラグインが存在しない場合、次のコマンドを使って下さい:
# letsencrypt certonly --manual
上記のコマンドで自動的にドメインが認証されて秘密鍵と証明書のペアが作成されます。秘密鍵と証明書は /etc/letsencrypt/live/your.domain/
に保存されます。
上記のディレクトリに入っている秘密鍵と証明書を使用するように手動でウェブサーバーを設定します。
Webroot
webroot を使うことでウェブサーバー (例: Apache/nginx) を止めることなく証明書を取得・更新できます。
/etc/systemd/system/letsencrypt.service
[Unit] Description=Let's Encrypt renewal [Service] Type=oneshot ExecStart=/usr/bin/letsencrypt certonly --agree-tos --renew-by-default --email email@example.com --webroot -w /path/to/html/ -d your.domain
サーバーの設定で /etc/letsencrypt/live/your.domain/
の証明書を使うようにしてください。
タイマーを追加する前に、サービスが正しく動作すること、何も入力が要求されないことを確認してください。
それから、タイマーを追加することで毎月証明書を更新できます。
/etc/systemd/system/letsencrypt.timer
[Unit] Description=Monthly renewal of Let's Encrypt's certificates [Timer] OnCalendar=monthly Persistent=true [Install] WantedBy=timers.target
letsencrypt.timer
を起動・有効化してください。また、証明書をいますぐ更新したい場合は letsencrypt.service
を起動してください。
証明書を更新するたびにウェブサーバーを再起動させることもできます。letsencrypt.service
ファイルに以下のどちらかの行を追加してください:
- Apache:
ExecStartPost=/usr/sbin/systemctl restart httpd.service
- nginx:
ExecStartPost=/usr/sbin/systemctl restart nginx.service