本文へスキップ
Electronic Frontier Foundation のプロジェクト

Certbot インストラクション

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

私の HTTP ウェブサイトは実行されています オン

Linux (snap) 上の HAProxy

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

Certbot を使用するには…

A laptop
コマンドラインに
慣れている必要があります
Close button

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

コマンドラインは、テキストベースのコマンドを入力して…

慣れている必要があります
コマンドライン

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

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

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

HTTP(Hypertext Transfer Protocol)は、ウェブブラウザが…

HTTP ウェブサイト
HTTP

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


既に
オンラインの
Close button

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

Certbot は通常、既存の HTTP サイトを HTTPS で動作するように切り替えるため…

オンラインの
既にオンラインのウェブサイト

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


開いている
ポート 80 で
Close button

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

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

ポート 80 で
ポート 80

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

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

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

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

サーバー
サーバー

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


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

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

SSH(「セキュアシェル」の略)は、リモートサーバーに接続し、アクセスする技術です…

ssh
SSH

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


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

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

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

sudo
sudo

Sudoは、Unix系オペレーティングシステムで、root(システム管理者)として特定のコマンドを実行するための最も一般的なコマンドです。root以外のユーザーとしてサーバーにログインしている場合、特にApacheやNginxなどのWebサーバーとCertbotを統合して使用している場合は、Certbotコマンドの前にsudoを付ける必要がある場合があります(例:sudo certbotではなく、certbot)。(certbot-autoスクリプトは、必要に応じて、指定されていない場合でも自動的に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検証を実行させるのは問題ありません。

DNS認証情報は、DNSレコードの内容を変更するためにDNSプロバイダーが使用できるようにするパスワードまたはその他の秘密情報(APIキーなど)です…

DNS認証情報
DNS認証情報

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

これらの要件を満たしていない場合?

ご心配なく!一部のホスティングプロバイダーはHTTPSプロセスを自動化しています。ホスティングプロバイダーの完全なリストはこちら、またはシステムの設定方法の詳細はこちら

  1. サーバーへのSSH接続

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

  2. snapdのインストール

    snapdをインストールし、クラシックなsnapサポートを有効にするための手順に従う必要があります。

    snapcraftのサイトの手順に従って、snapdをインストールしてください

  3. certbot-autoおよびCertbot OSパッケージの削除

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

  4. Certbotのインストール

    マシン上でコマンドラインからこのコマンドを実行して、Certbotをインストールします。

    sudo snap install --classic certbot
  5. Certbotコマンドの準備

    マシン上でコマンドラインから次の手順を実行して、certbotコマンドを実行できることを確認します。

    sudo ln -s /snap/bin/certbot /usr/bin/certbot
  6. Certbotの実行方法を選択してください

    一時的にウェブサイトを停止してもよろしいですか?

    はい、私のウェブサーバーは現在このマシンでは実行されていません。

    ウェブサーバーを停止してから、このコマンドを実行して証明書を取得します。Certbotは、マシン上で一時的にウェブサーバーを起動します。

    sudo certbot certonly --standalone

    いいえ、ウェブサーバーを稼働させたままにしておく必要があります。

    すでにポート80を使用しているウェブサーバーがあり、Certbotの実行中に停止したくない場合は、このコマンドを実行し、ターミナルの指示に従ってください。

    sudo certbot certonly --webroot
  7. 証明書のインストール

    新しい証明書をウェブサーバーの構成ファイルにインストールする必要があります。

  8. 自動更新のテスト

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

    sudo certbot renew --dry-run

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

    • /etc/crontab/
    • /etc/cron.*/*
    • systemctl list-timers
  9. Certbotが機能したことを確認する

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

  10. HAProxyに関する詳細情報が必要ですか?

    HAProxyでの証明書のインストールは複雑です。これらのガイドで詳細情報を見つけることができます。

    または、Greenhostの試験的なサードパーティHAProxyプラグインの使用に興味があるかもしれません。

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

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

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

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

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

    DNSプロバイダーがサポートされている場合は、以下の手順を続行してください。

  2. サーバーへのSSH接続

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

  3. snapdのインストール

    snapdをインストールし、クラシックなsnapサポートを有効にするための手順に従う必要があります。

    snapcraftのサイトの手順に従って、snapdをインストールしてください

  4. certbot-autoおよびCertbot OSパッケージの削除

    aptdnfyumなどのOSパッケージマネージャーを使用してCertbotパッケージをインストールしている場合は、Certbot snapをインストールする前にそれらを削除する必要があります。これにより、certbotコマンドを実行した際に、OSパッケージマネージャーからのインストールではなく、snapが使用されるようになります。削除コマンドはOSによって異なりますが、一般的な例としては、sudo apt-get remove certbotsudo dnf remove certbotsudo 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プロバイダーの「資格情報」セクションの手順に従って、適切な資格情報構成ファイルにアクセスするか作成します。

  10. 証明書の取得

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

  11. 証明書のインストール

    新しい証明書をウェブサーバーの構成ファイルにインストールする必要があります。

  12. 自動更新のテスト

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

    sudo certbot renew --dry-run

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

    • /etc/crontab/
    • /etc/cron.*/*
    • systemctl list-timers
  13. Certbotが機能したことを確認する

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

  14. HAProxyに関する詳細情報が必要ですか?

    HAProxyでの証明書のインストールは複雑です。これらのガイドで詳細情報を見つけることができます。

    または、Greenhostの試験的なサードパーティHAProxyプラグインの使用に興味があるかもしれません。