コンテンツにスキップ

「Certbot」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
翻訳
Let's EncryptクライアントからCertbotに置換
2行目: 2行目:
[[Category:セキュリティ]]
[[Category:セキュリティ]]
[[en:Let’s Encrypt]]
[[en:Let’s Encrypt]]
[https://letsencrypt.org/ Let’s Encrypt] はフリーかつ自動化されたオープンな認証局です。コマンドラインから有効な ssl 証明書を取得できるツールが提供されています。
[https://letsencrypt.org/ Let’s Encrypt] はフリーかつ自動化されたオープンな認証局です。公式クライアントは '''Certbot''' と呼ばれており、コマンドラインから有効な SSL 証明書を取得できます。

{{Note|以前 ''Let’s Encrypt client'' と呼ばれていた公式クライアントは、現在 ''Certbot'' と呼ばれています。}}

== Certbot ==

''Certbot'' は公式のリファレンスクライアントです。Python で書かれており、証明書を取得するためのコマンドラインツールを提供します。


== インストール ==
== インストール ==


{{Pkg|letsencrypt}} パッケージを[[インストール]]してください。
{{Pkg|certbot}} パッケージを[[インストール]]してください。


手動で CSR 作成を行うミニマルなクライアントを {{AUR|acme-tiny}} でインストールすることができます。スクリプトで使用するのに適したクライアントとして {{AUR|simp_le-git}} や {{AUR|letsencrypt-cli}} も存在します。
手動で CSR 作成を行うミニマルなクライアントを {{AUR|acme-tiny}} でインストールすることができます。スクリプトで使用するのに適したクライアントとして {{AUR|simp_le-git}} や {{AUR|letsencrypt-cli}} も存在します。


公式クライアントを用いて発行された証明書はプラグインを使ってウェブサーバーに自動的に設定・インストールできます:
公式クライアントを用いて発行された証明書はプラグインを使ってウェブサーバーに自動的に設定・インストールできます:
* [[Nginx]] 用の実験的なプラグインは {{Pkg|letsencrypt-nginx}} パッケージに入っています。
* [[Nginx]] 用の実験的なプラグインは {{Pkg|certbot-nginx}} パッケージに入っています。
* {{Pkg|letsencrypt-apache}} パッケージも存在していますが、[[Apache HTTP Server]] を使っている場合の自動インストールは現在 Debian の派生ディストリビューションでしかサポートされていません。
* {{Pkg|certbot-apache}} パッケージも存在していますが、[[Apache HTTP Server]] を使っている場合の自動インストールは現在 Debian の派生ディストリビューションでしかサポートされていません。


== 設定 ==
== 設定 ==


証明を作成・インストールする方法は [https://letsencrypt.readthedocs.org/en/latest/ Let’s Encrypt クライアントのドキュメント] を参照してください。証明書の作成方法がはっきりしたら、この wiki にも記載します。
証明を作成・インストールする方法は [https://certbot.eff.org/docs/ Certbot のドキュメント] を参照してください。証明書の作成方法がはっきりしたら、この wiki にも記載します。


=== 手動 ===
=== 手動 ===
23行目: 29行目:


ウェブサーバーのプラグインが存在しない場合、次のコマンドを使って下さい:
ウェブサーバーのプラグインが存在しない場合、次のコマンドを使って下さい:
# letsencrypt certonly --manual
# certbot certonly --manual


上記のコマンドで自動的にドメインが認証されて秘密鍵と証明書のペアが作成されます。秘密鍵と証明書は {{ic|/etc/letsencrypt/live/''your.domain''/}} に保存されます。
上記のコマンドで自動的にドメインが認証されて秘密鍵と証明書のペアが作成されます。秘密鍵と証明書は {{ic|/etc/letsencrypt/live/''your.domain''/}} に保存されます。
33行目: 39行目:
webroot を使うことでウェブサーバー (例: Apache/nginx) を止めることなく証明書を取得・更新できます。
webroot を使うことでウェブサーバー (例: Apache/nginx) を止めることなく証明書を取得・更新できます。


# letsencrypt certonly --email ''email@example.com'' --webroot -w ''/path/to/html/'' -d ''your.domain''
# certbot certonly --email ''email@example.com'' --webroot -w ''/path/to/html/'' -d ''your.domain''


サーバーの設定で {{ic|/etc/letsencrypt/live/''your.domain''/}} の証明書を使うようにしてください。
サーバーの設定で {{ic|/etc/letsencrypt/live/''your.domain''/}} の証明書を使うようにしてください。
39行目: 45行目:
==== 自動更新 ====
==== 自動更新 ====


{{ic|letsencrypt certonly}} を実行するとき、letsencrypt はドメインと webroot ディレクトリを {{ic|/etc/letsencrypt/renewal}} に記録します。次回からは {{ic|letsencrypt renew}} を実行することで証明書を自動更新することができます。
{{ic|certbot certonly}} を実行するとき、Certbot はドメインと webroot ディレクトリを {{ic|/etc/letsencrypt/renewal}} に記録します。次回からは {{ic|certbot renew}} を実行することで証明書を自動更新することができます。


以下の {{ic|.service}} ファイルを作成することで完全に自動化することが可能です:
以下の {{ic|.service}} ファイルを作成することで完全に自動化することが可能です:


{{hc|1=/etc/systemd/system/letsencrypt.service|
{{hc|1=/etc/systemd/system/certbot.service|
2=[Unit]
2=[Unit]
Description=Let's Encrypt renewal
Description=Let's Encrypt renewal
49行目: 55行目:
[Service]
[Service]
Type=oneshot
Type=oneshot
ExecStart=/usr/bin/letsencrypt renew}}
ExecStart=/usr/bin/certbot renew}}


[[systemd/タイマー|タイマー]]を追加する前に、サービスが正しく動作すること、何も入力が要求されないことを確認してください。
[[systemd/タイマー|タイマー]]を追加する前に、サービスが正しく動作すること、何も入力が要求されないことを確認してください。
55行目: 61行目:
それから、タイマーを追加することで毎月証明書を更新できます。
それから、タイマーを追加することで毎月証明書を更新できます。


{{hc|1=/etc/systemd/system/letsencrypt.timer|
{{hc|1=/etc/systemd/system/certbot.timer|
2=[Unit]
2=[Unit]
Description=Monthly renewal of Let's Encrypt's certificates
Description=Monthly renewal of Let's Encrypt's certificates
66行目: 72行目:
WantedBy=timers.target}}
WantedBy=timers.target}}


{{ic|letsencrypt.timer}} を[[起動]]・[[有効化]]してください。また、証明書をいますぐ更新したい場合は {{ic|letsencrypt.service}} を[[起動]]してください。
{{ic|certbot.timer}} を[[起動]]・[[有効化]]してください。また、証明書をいますぐ更新したい場合は {{ic|certbot.service}} を[[起動]]してください。


証明書を更新するたびにウェブサーバーを再起動させることもできます。{{ic|letsencrypt.service}} ファイルに以下のどちらかの行を追加してください:
証明書を更新するたびにウェブサーバーを再起動させることもできます。{{ic|certbot.service}} ファイルに以下のどちらかの行を追加してください:


* Apache: {{ic|1=ExecStartPost=/usr/sbin/systemctl restart httpd.service}}
* Apache: {{ic|1=ExecStartPost=/usr/sbin/systemctl restart httpd.service}}

2016年6月15日 (水) 21:03時点における版

Let’s Encrypt はフリーかつ自動化されたオープンな認証局です。公式クライアントは Certbot と呼ばれており、コマンドラインから有効な SSL 証明書を取得できます。

ノート 以前 Let’s Encrypt client と呼ばれていた公式クライアントは、現在 Certbot と呼ばれています。

Certbot

Certbot は公式のリファレンスクライアントです。Python で書かれており、証明書を取得するためのコマンドラインツールを提供します。

インストール

certbot パッケージをインストールしてください。

手動で CSR 作成を行うミニマルなクライアントを acme-tinyAUR でインストールすることができます。スクリプトで使用するのに適したクライアントとして simp_le-gitAURletsencrypt-cliAUR も存在します。

公式クライアントを用いて発行された証明書はプラグインを使ってウェブサーバーに自動的に設定・インストールできます:

  • Nginx 用の実験的なプラグインは certbot-nginx パッケージに入っています。
  • certbot-apache パッケージも存在していますが、Apache HTTP Server を使っている場合の自動インストールは現在 Debian の派生ディストリビューションでしかサポートされていません。

設定

証明を作成・インストールする方法は Certbot のドキュメント を参照してください。証明書の作成方法がはっきりしたら、この wiki にも記載します。

手動

ノート この方法では、一時的にウェブサーバーを停止する必要があります。#Webroot の方法ではウェブサーバーを実行しながらでも認証が行えます。

ウェブサーバーのプラグインが存在しない場合、次のコマンドを使って下さい:

# certbot certonly --manual

上記のコマンドで自動的にドメインが認証されて秘密鍵と証明書のペアが作成されます。秘密鍵と証明書は /etc/letsencrypt/live/your.domain/ に保存されます。

上記のディレクトリに入っている秘密鍵と証明書を使用するように手動でウェブサーバーを設定します。

Webroot

webroot を使うことでウェブサーバー (例: Apache/nginx) を止めることなく証明書を取得・更新できます。

# certbot certonly --email email@example.com --webroot -w /path/to/html/ -d your.domain

サーバーの設定で /etc/letsencrypt/live/your.domain/ の証明書を使うようにしてください。

自動更新

certbot certonly を実行するとき、Certbot はドメインと webroot ディレクトリを /etc/letsencrypt/renewal に記録します。次回からは certbot renew を実行することで証明書を自動更新することができます。

以下の .service ファイルを作成することで完全に自動化することが可能です:

/etc/systemd/system/certbot.service
[Unit]
Description=Let's Encrypt renewal

[Service]
Type=oneshot
ExecStart=/usr/bin/certbot renew

タイマーを追加する前に、サービスが正しく動作すること、何も入力が要求されないことを確認してください。

それから、タイマーを追加することで毎月証明書を更新できます。

/etc/systemd/system/certbot.timer
[Unit]
Description=Monthly renewal of Let's Encrypt's certificates

[Timer]
OnCalendar=monthly
Persistent=true

[Install]
WantedBy=timers.target

certbot.timer起動有効化してください。また、証明書をいますぐ更新したい場合は certbot.service起動してください。

証明書を更新するたびにウェブサーバーを再起動させることもできます。certbot.service ファイルに以下のどちらかの行を追加してください:

  • Apache: ExecStartPost=/usr/sbin/systemctl restart httpd.service
  • nginx: ExecStartPost=/usr/sbin/systemctl restart nginx.service

参照