メインコンテンツへスキップ
電子フロンティア財団のプロジェクト

Certbot の手順

あなたの HTTP ウェブサイトは何で実行されていますか?

私の HTTP ウェブサイトは以下で実行されています

Linux (snap) 上の Nginx

デフォルト
ワイルドカード

Certbot を使用するには、以下が必要です...

A laptop
以下に慣れていること
コマンドライン
Close button

コマンドラインは、テキストベースのコマンドを入力してコンピュータと対話し、テキストベースの応答を受信する方法です。Certbot は通常、Unix ライクなサーバー上のコマンドラインインターフェースから実行されます。ほとんどの目的で Certbot を使用するには、通常 SSH 経由でアクセスする Web サーバーのコマンドラインにインストールして実行できる必要があります。

コマンドラインは、テキストベースのコマンドを入力してコンピュータと対話する方法です。...

コマンドライン
コマンドライン

コマンドラインは、テキストベースのコマンドを入力してコンピュータと対話し、テキストベースの応答を受信する方法です。Certbot は通常、Unix ライクなサーバー上のコマンドラインインターフェースから実行されます。ほとんどの目的で Certbot を使用するには、通常 SSH 経由でアクセスする Web サーバーのコマンドラインにインストールして実行できる必要があります。

Web browser showing an HTTP site
...そして
HTTP ウェブサイト
Close button

HTTP (Hypertext Transfer Protocol) は、Web ブラウザが Web ページやその他のオンラインリソースのコンテンツを Web サーバーからリクエストするための従来の方法ですが、安全ではありません。これはインターネット標準であり、通常は TCP ポート 80 で使用されます。世界中のほぼすべての Web サイトが HTTP をサポートしていますが、Certbot またはその他の HTTPS 設定方法で設定された Web サイトでは、サイトの HTTP バージョンから HTTPS バージョンにユーザーが自動的にリダイレクトされる場合があります。

HTTP (Hypertext Transfer Protocol) は、Web ブラウザが Web ページをリクエストするための従来の方法ですが、安全ではありません。...

HTTP ウェブサイト
HTTP

HTTP (Hypertext Transfer Protocol) は、Web ブラウザが Web ページやその他のオンラインリソースのコンテンツを Web サーバーからリクエストするための従来の方法ですが、安全ではありません。これはインターネット標準であり、通常は TCP ポート 80 で使用されます。世界中のほぼすべての Web サイトが HTTP をサポートしていますが、Certbot またはその他の HTTPS 設定方法で設定された Web サイトでは、サイトの HTTP バージョンから HTTPS バージョンにユーザーが自動的にリダイレクトされる場合があります。


それは
すでにオンラインであること
Close button

Certbot は通常、既存の HTTP サイトを HTTPS で動作するように切り替え (その後、必要に応じてサイトの HTTPS 証明書を更新し続ける) ために使用することを目的としています。Certbot の一部のドキュメントでは、ポート 80 で HTTP を使用してすでにアクセスできる、動作中の Web サイトがあることを前提または推奨しています。これは、たとえば、Web ブラウザを使用して http:// を使用してドメインにアクセスする場合、Web サーバーが応答し、何らかのコンテンツが表示される (たとえそれがサイトの最終バージョンではなく、デフォルトのウェルカムページであっても) ことを意味します。Certbot を使用する一部の方法では、これが前提条件となっているため、HTTP でサイトが既に設定されている場合、よりスムーズなエクスペリエンスが得られます。(ポリシー上、サイトにこの方法でアクセスできない場合は、Certbot で証明書を取得するために DNS 検証を使用する必要がある場合があります。)

Certbot は通常、既存の HTTP サイトを HTTPS で動作するように切り替えるために使用されます (その後、...

すでにオンラインであること
すでにオンラインの Web サイト

Certbot は通常、既存の HTTP サイトを HTTPS で動作するように切り替え (その後、必要に応じてサイトの HTTPS 証明書を更新し続ける) ために使用することを目的としています。Certbot の一部のドキュメントでは、ポート 80 で HTTP を使用してすでにアクセスできる、動作中の Web サイトがあることを前提または推奨しています。これは、たとえば、Web ブラウザを使用して http:// を使用してドメインにアクセスする場合、Web サーバーが応答し、何らかのコンテンツが表示される (たとえそれがサイトの最終バージョンではなく、デフォルトのウェルカムページであっても) ことを意味します。Certbot を使用する一部の方法では、これが前提条件となっているため、HTTP でサイトが既に設定されている場合、よりスムーズなエクスペリエンスが得られます。(ポリシー上、サイトにこの方法でアクセスできない場合は、Certbot で証明書を取得するために DNS 検証を使用する必要がある場合があります。)


開いている
ポート 80
Close button

さまざまなインターネットサービスは、異なる TCP ポート番号を使用して区別されます。暗号化されていない HTTP は通常 TCP ポート 80 を使用しますが、暗号化された HTTPS は通常 TCP ポート 443 を使用します。certbot --webroot、certbot --apache、または certbot --nginx を使用するには、Certbot を使用するサーバーでホストされている、既にオンラインになっている既存の HTTP Web サイトが必要です。このサイトは、ポート 80 でインターネットの残りの部分からアクセスできる必要があります。certbot --standalone を使用する場合は、既存のサイトは必要ありませんが、サーバーのポート 80 への接続がファイアウォール (インターネットサービスプロバイダーまたは Web ホスティングプロバイダーが実行している可能性があるファイアウォールを含む) によってブロックされていないことを確認する必要があります。不明な場合は、ISP またはホスティングプロバイダーに確認してください。(DNS 検証を使用する場合、Let's Encrypt がサーバーへのインバウンド接続を行う必要はないため、特にこの方法では、既存の HTTP Web サイトやポート 80 で接続を受信する機能は必要ありません。)

さまざまなインターネットサービスは、異なる TCP ポート番号を使用して区別されます。暗号化されていない HTTP...

ポート 80
ポート 80

さまざまなインターネットサービスは、異なる TCP ポート番号を使用して区別されます。暗号化されていない HTTP は通常 TCP ポート 80 を使用しますが、暗号化された HTTPS は通常 TCP ポート 443 を使用します。certbot --webroot、certbot --apache、または certbot --nginx を使用するには、Certbot を使用するサーバーでホストされている、既にオンラインになっている既存の HTTP Web サイトが必要です。このサイトは、ポート 80 でインターネットの残りの部分からアクセスできる必要があります。certbot --standalone を使用する場合は、既存のサイトは必要ありませんが、サーバーのポート 80 への接続がファイアウォール (インターネットサービスプロバイダーまたは Web ホスティングプロバイダーが実行している可能性があるファイアウォールを含む) によってブロックされていないことを確認する必要があります。不明な場合は、ISP またはホスティングプロバイダーに確認してください。(DNS 検証を使用する場合、Let's Encrypt がサーバーへのインバウンド接続を行う必要はないため、特にこの方法では、既存の HTTP Web サイトやポート 80 で接続を受信する機能は必要ありません。)

A server
...これは、
サーバー
閉じるボタン

サーバーとは、ウェブサイトやメールサービスなどのサービスを提供するインターネット上のコンピューターです。ほとんどのウェブサイト所有者は、データセンターに設置され、インターネット経由で管理されるサーバーの利用料をホスティングプロバイダーに支払っています。これは、物理的な専用サーバー、仮想プライベートサーバー(VPS)、または共有サーバーの場合があります。その他のサーバーは、DNSサーバーなど、インターネットインフラストラクチャの他の部分を提供します。

サーバーとは、ウェブサイトやメールサービスなどのサービスを提供するインターネット上のコンピューターです...

サーバー
サーバー

サーバーとは、ウェブサイトやメールサービスなどのサービスを提供するインターネット上のコンピューターです。ほとんどのウェブサイト所有者は、データセンターに設置され、インターネット経由で管理されるサーバーの利用料をホスティングプロバイダーに支払っています。これは、物理的な専用サーバー、仮想プライベートサーバー(VPS)、または共有サーバーの場合があります。その他のサーバーは、DNSサーバーなど、インターネットインフラストラクチャの他の部分を提供します。


でホストされており、
ssh
閉じるボタン
SSH

SSH(「セキュアシェル」の略)は、リモートサーバーに接続し、そのサーバーのコマンドラインにアクセスするためのテクノロジーで、多くの場合、管理するために使用されます。サーバーの管理者は、他のユーザーにSSHアクセスを許可したり、SSHアクセスを直接使用してサーバーをリモートで管理したりできます。SSHは通常、Unix系のオペレーティングシステムを実行しているサーバーにアクセスするために使用されますが、SSHを使用するために自分のコンピューターがUnixを実行している必要はありません。通常、ssh username@example.com のようなコマンドをターミナルのコンピューターのコマンドラインに入力してSSHを使用します。特に、自分のコンピューターがLinuxまたはmacOSを実行している場合はそうです。ログイン後、サーバーのコマンドラインにアクセスできるようになります。コンピューターでWindowsを使用している場合は、PuTTYなどの専用のSSHアプリケーションを使用することもできます。ほとんどのCertbotユーザーは、SSH経由でリモートサーバーのコマンドプロンプトからCertbotを実行します。

SSH(「セキュアシェル」の略)は、リモートサーバーに接続し、アクセスするためのテクノロジーです...

ssh
SSH

SSH(「セキュアシェル」の略)は、リモートサーバーに接続し、そのサーバーのコマンドラインにアクセスするためのテクノロジーで、多くの場合、管理するために使用されます。サーバーの管理者は、他のユーザーにSSHアクセスを許可したり、SSHアクセスを直接使用してサーバーをリモートで管理したりできます。SSHは通常、Unix系のオペレーティングシステムを実行しているサーバーにアクセスするために使用されますが、SSHを使用するために自分のコンピューターがUnixを実行している必要はありません。通常、ssh username@example.com のようなコマンドをターミナルのコンピューターのコマンドラインに入力してSSHを使用します。特に、自分のコンピューターがLinuxまたはmacOSを実行している場合はそうです。ログイン後、サーバーのコマンドラインにアクセスできるようになります。コンピューターでWindowsを使用している場合は、PuTTYなどの専用のSSHアプリケーションを使用することもできます。ほとんどのCertbotユーザーは、SSH経由でリモートサーバーのコマンドプロンプトからCertbotを実行します。


経由でアクセスでき、
sudo
閉じるボタン

Sudoは、Unix系のオペレーティングシステムで特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです。root以外のユーザーとしてサーバーにログインしている場合は、Certbotコマンドの前にsudoを付ける必要があります。これにより、特にApacheやNginxなどのWebサーバーとCertbotを統合して使用している場合に、それらのコマンドがrootとして実行されます(たとえば、単にcertbotの代わりにsudo certbot)。(certbot-autoスクリプトは、必要な場合は自動的にsudoを実行し、指定しなかった場合でもsudoを実行します。)

Sudoは、Unix系のオペレーティングシステムで特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです(...

sudo
sudo

Sudoは、Unix系のオペレーティングシステムで特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです。root以外のユーザーとしてサーバーにログインしている場合は、Certbotコマンドの前にsudoを付ける必要があります。これにより、特にApacheやNginxなどのWebサーバーとCertbotを統合して使用している場合に、それらのコマンドがrootとして実行されます(たとえば、単にcertbotの代わりにsudo certbot)。(certbot-autoスクリプトは、必要な場合は自動的にsudoを実行し、指定しなかった場合でもsudoを実行します。)


これは、
ワイルドカード証明書
閉じるボタン

ワイルドカード証明書とは、*. で始まる1つ以上の名前を含む証明書のことです。ブラウザは、アスタリスク (*) の代わりに任意のラベルを受け入れます。たとえば、*.example.com の証明書は、www.example.commail.example.comhello.example.com、および goodbye.example.com に有効です。

ただし、*.example.com という名前のみを含むワイルドカード証明書は、example.com には有効ではありません。置き換えられたラベルは空にすることはできません。証明書を example.com に有効にする場合は、証明書に example.com(つまり、*. 部分なし)を含める必要もあります。

さらに、アスタリスクは単一のラベルでのみ置き換えることができ、複数のラベルでは置き換えることはできません。たとえば、hello.goodbye.example.com という名前は、*.example.com という名前のみを含む証明書ではカバーされません。ただし、*.goodbye.example.com であればカバーされます。ワイルドカード名に複数のアスタリスクを含めることはできないことに注意してください。たとえば、*.*.example.com は無効です。

ワイルドカード証明書とは、*. で始まる1つ以上の名前を含む証明書です。ブラウザは...

ワイルドカード証明書
ワイルドカード証明書

ワイルドカード証明書とは、*. で始まる1つ以上の名前を含む証明書のことです。ブラウザは、アスタリスク (*) の代わりに任意のラベルを受け入れます。たとえば、*.example.com の証明書は、www.example.commail.example.comhello.example.com、および goodbye.example.com に有効です。

ただし、*.example.com という名前のみを含むワイルドカード証明書は、example.com には有効ではありません。置き換えられたラベルは空にすることはできません。証明書を example.com に有効にする場合は、証明書に example.com(つまり、*. 部分なし)を含める必要もあります。

さらに、アスタリスクは単一のラベルでのみ置き換えることができ、複数のラベルでは置き換えることはできません。たとえば、hello.goodbye.example.com という名前は、*.example.com という名前のみを含む証明書ではカバーされません。ただし、*.goodbye.example.com であればカバーされます。ワイルドカード名に複数のアスタリスクを含めることはできないことに注意してください。たとえば、*.*.example.com は無効です。

を希望する場合に
オプション:
DNS認証情報
閉じるボタン

DNS認証情報とは、DNSプロバイダーがDNSレコードの内容を変更するために使用できるようにするパスワードまたはその他の種類のシークレット(APIキーなど)のことです。通常、ドメインレジストラ(または、DNSプロバイダーがレジストラと異なる場合は、別のDNSプロバイダー)によって発行されます。DNS認証情報は、サイトを完全に乗っ取るために使用できるため、機密性の高い種類のシークレットです。これらの認証情報を公開したり、許可されていない人と共有したりしないでください。CertbotがDNS検証を自動的に実行できるようにするために、ローカルマシンで実行されるため、Certbotにコピーを提供することは問題ありません。

DNS認証情報とは、DNSプロバイダーがDNSレコードの内容を変更するために使用できるようにするパスワードまたはその他の種類のシークレット(APIキーなど)のことです...

DNS認証情報
DNS認証情報

DNS認証情報とは、DNSプロバイダーがDNSレコードの内容を変更するために使用できるようにするパスワードまたはその他の種類のシークレット(APIキーなど)のことです。通常、ドメインレジストラ(または、DNSプロバイダーがレジストラと異なる場合は、別のDNSプロバイダー)によって発行されます。DNS認証情報は、サイトを完全に乗っ取るために使用できるため、機密性の高い種類のシークレットです。これらの認証情報を公開したり、許可されていない人と共有したりしないでください。CertbotがDNS検証を自動的に実行できるようにするために、ローカルマシンで実行されるため、Certbotにコピーを提供することは問題ありません。

これらの要件を満たしていませんか?

ご心配なく!一部のホスティングプロバイダーは、HTTPSプロセスを自動化しています。ホスティングプロバイダーの完全なリストを参照するか、システムの設定方法の詳細を確認してください

  1. DNSプロバイダーがサポートされているか確認する

    ドキュメントでこのリストを確認して、DNSプロバイダーがCertbotでサポートされているかどうかを確認してください。

    サポートされていませんか?

    DNSプロバイダーがサポートされていない場合は、ここで一時停止してください。ドキュメントのこれらの手順に従って、手動プラグインでCertbotを実行してください。

    サポートされていますか?

    DNSプロバイダーがサポートされている場合は、以下の残りの手順に進んでください。

  2. サーバーにSSHで接続する

    sudo権限を持つユーザーとして、HTTP Webサイトを実行しているサーバーにSSHで接続します。

  3. snapdをインストールする

    snapdをインストールし、classic snapのサポートを有効にするための指示に従う必要があります。

    snapcraftのサイトで、snapdをインストールするための手順に従ってください。

  4. certbot-autoとCertbot OSパッケージを削除する

    aptdnfyumのようなOSパッケージマネージャーを使ってCertbotパッケージをインストールしている場合は、Certbot snapをインストールする前にそれらを削除する必要があります。これにより、certbotコマンドを実行した際に、OSパッケージマネージャーからのインストールではなく、snapが使用されることを保証します。このための正確なコマンドはOSによって異なりますが、一般的な例としては、sudo apt-get remove certbotsudo dnf remove certbot、またはsudo yum remove certbotがあります。

  5. Certbotをインストールする

    Certbotをインストールするには、マシンのコマンドラインでこのコマンドを実行してください。

    sudo snap install --classic certbot
  6. Certbotコマンドを準備する

    certbotコマンドが実行できることを確認するため、マシンのコマンドラインで次の指示を実行してください。

    sudo ln -s /snap/bin/certbot /usr/bin/certbot
  7. プラグインの封じ込めレベルを確認する

    インストールされたプラグインがCertbot snapと同じclassic封じ込めレベルを持つことを確認するため、マシンのコマンドラインでこのコマンドを実行してください。

    sudo snap set certbot trust-plugin-with-root=ok

    Certbotの実行中に問題が発生した場合は、この手順を実行してから、「正しいDNSプラグインをインストールする」手順を再度実行する必要がある場合があります。

  8. 正しいDNSプラグインをインストールする

    次のコマンドを実行し、<PLUGIN>をDNSプロバイダーの名前に置き換えてください。

    sudo snap install certbot-dns-<PLUGIN>

    たとえば、DNSプロバイダーがCloudflareの場合は、次のコマンドを実行します。

    sudo snap install certbot-dns-cloudflare
  9. 認証情報を設定する

    DNS認証情報を設定する必要があります。

    適切な認証情報構成ファイルにアクセスまたは作成するには、DNSプロバイダーの「認証情報」セクションの手順に従ってください。DNSプロバイダーの認証情報の手順については、ドキュメントリストのDNSプラグインの名前をクリックして見つけてください。

  10. Certbotの実行方法を選択する

    証明書を取得してインストールするか...

    -i nginxフラグとともに、DNSプロバイダーの手順の「例」セクションにあるコマンドのいずれかを実行します。

    または、証明書を取得するだけ

    DNSプロバイダーの手順の「例」セクションにあるコマンドのいずれかを実行します。

  11. 自動更新をテストする

    システム上のCertbotパッケージには、証明書の有効期限が切れる前に自動的に更新するcronジョブまたはsystemdタイマーが付属しています。設定を変更しない限り、Certbotを再度実行する必要はありません。このコマンドを実行することで、証明書の自動更新をテストできます。

    sudo certbot renew --dry-run

    certbotを更新するコマンドは、次のいずれかの場所にインストールされます。

    • /etc/crontab/
    • /etc/cron.*/*
    • systemctl list-timers
  12. Certbotが正常に動作したことを確認する

    サイトが正しく設定されていることを確認するには、ブラウザでhttps://yourwebsite.com/にアクセスし、URLバーに鍵のアイコンが表示されていることを確認してください。