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

Certbot インストラクション

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

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

macOS 上の Nginx

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

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 を使用してアクセスできる動作中のウェブサイトがあることを前提または推奨しています。つまり、例えば、http:// を使用してドメインにウェブブラウザでアクセスすると、ウェブサーバーが応答し、何らかのコンテンツが表示されるということです(最終版のサイトではなく、デフォルトのウェルカムページだけの可能性もあります)。Certbot を使用するいくつかの方法ではこれが前提条件となっているため、既に HTTP で設定されたサイトがあれば、よりスムーズな操作が可能です。(ポリシーの都合上、このようにサイトにアクセスできない場合は、Certbot で証明書を取得するために DNS 検証を使用する必要があるでしょう。)

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

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

Certbot は通常、既存の HTTP サイトを HTTPS で動作するように切り替えるために使用されます(その後、必要に応じてサイトの HTTPS 証明書を更新し続けます)。一部の Certbot ドキュメントでは、ポート 80 で HTTP を使用してアクセスできる動作中のウェブサイトがあることを前提または推奨しています。つまり、例えば、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(「secure shell」の略)は、リモートサーバーに接続し、そのサーバーのコマンドラインにアクセスするテクノロジーで、多くの場合、サーバーの管理に使用されます。サーバーの管理者は、他のユーザーにSSHアクセスを許可したり、SSHアクセスを直接使用してリモートでサーバーを管理することもできます。SSHは通常、Unix系オペレーティングシステムを実行しているサーバーへのアクセスに使用されますが、SSHを使用するために自分のコンピューターがUnixを実行している必要はありません。LinuxまたはmacOSを実行しているコンピューターを使用している場合は特に、ターミナルで`ssh username@example.com`などのコマンドを入力して、コンピューターのコマンドラインからSSHを使用するのが一般的です。ログイン後、サーバーのコマンドラインにアクセスできます。Windowsコンピューターを使用している場合は、PuTTYなどの専用のSSHアプリケーションを使用することもできます。Certbotユーザーのほとんどは、SSH経由でリモートサーバーのコマンドプロンプトからCertbotを実行します。

SSH(「secure shell」の略)は、リモートサーバーに接続し、アクセス…

ssh
SSH

SSH(「secure shell」の略)は、リモートサーバーに接続し、そのサーバーのコマンドラインにアクセスするテクノロジーで、多くの場合、サーバーの管理に使用されます。サーバーの管理者は、他のユーザーに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.comgoodbye.example.comで有効になります。

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

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

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

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

ワイルドカード証明書は、*.で始まる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. Homebrewのインストール

    Homebrewをインストールする必要があります。

    Homebrewのサイトにある手順に従ってHomebrewをインストールしてください

  4. Certbotのインストール

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

    brew install certbot
  5. 正しいDNSプラグインをインストールします

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

    brew install -<PLUGIN>

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

    brew install -cloudflare
  6. 証明書の取得

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

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

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

  8. 自動更新の設定

    次の行を実行することをお勧めします。これにより、デフォルトのcrontabにcronジョブが追加されます。

    echo "0 0,12 * * * root $(command -v python3) -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo $(command -v certbot) renew -q" | sudo tee -a /etc/crontab > /dev/null
  9. Certbotが機能したことを確認します

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