本文へスキップ
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以外のユーザーとしてサーバーにログインしている場合は、Certbotコマンドの前にsudoを付ける必要がある場合があります(例:`sudo certbot`ではなく`certbot`)。特に、ApacheやNginxなどのWebサーバーとCertbotを統合して使用している場合はそうです。(`certbot-auto`スクリプトは、必要に応じて、ユーザーが指定しなくても自動的にsudoを実行します。)

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

sudo
sudo

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


権限を使用できます。 ワイルドカード証明書
wildcard cert
閉じるボタン

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

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

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

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

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

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

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

さらに、アスタリスクは1つのラベルのみに置換でき、複数のラベルには置換できません。たとえば、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プロバイダーが使用を許可する…

DNS認証情報
DNS認証情報

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

が必要です。

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

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

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

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

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

    DNSプロバイダーがサポートされていない場合は、ここで一時停止してください。ドキュメントの手順に従って、manualプラグインを使用して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スナップと同じ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. 証明書の取得

    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プラグインの使用を検討することもできます。