メインコンテンツにスキップ
Electronic Frontier Foundation のプロジェクト

Certbot の手順

あなたの HTTP ウェブサイトはどのソフトウェアで動いていますか?

私の HTTP ウェブサイトは 上で動作しています

macOS 上のウェブホスティング製品

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

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

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

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

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

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

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

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コマンドをrootとして実行するために、Certbotコマンドの前にsudoを付ける必要があります(たとえば、単にcertbotではなくsudo certbot)。特にApacheやNginxのようなWebサーバーとCertbotの統合を使用している場合はそうです。(certbot-autoスクリプトは、必要に応じてsudoを自動的に実行します。指定しなかった場合は)。

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

sudo
sudo

Sudoは、Unixライクなオペレーティングシステムで、特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです。root以外のユーザーとしてサーバーにログインしている場合は、Certbotコマンドをrootとして実行するために、Certbotコマンドの前にsudoを付ける必要があります(たとえば、単にcertbotではなくsudo certbot)。特にApacheやNginxのようなWebサーバーと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つ以上の名前を含む証明書です。ブラウザw...

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

ワイルドカード証明書とは、*.で始まる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. サーバーにSSH接続します

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

  2. Homebrewをインストールします

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

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

  3. Certbotをインストールします

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

    brew install certbot
  4. Certbotの実行方法を選択してください

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

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

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

    sudo certbot certonly --standalone

    いいえ、ウェブサーバーを起動したままにする必要があります。

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

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

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

  6. 自動更新の設定

    デフォルトの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
  7. Certbotが機能したかどうかの確認

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

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

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

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

    DNSプロバイダーがサポートされていない場合は、ここで一時停止してください。 ドキュメントのこれらの手順に従って、手動プラグインで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バーにロックアイコンが表示されているか確認してください。