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

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をApacheやNginxなどのウェブサーバーと統合している場合は、Certbotコマンドをrootとして実行するために、sudoをCertbotコマンドの前に追加する必要があるでしょう(たとえば、sudo certbotではなく、単にcertbot)。(certbot-autoスクリプトは、必要な場合はsudoを自動的に実行し、指定しなかった場合はsudoを実行します。)

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

sudo
sudo

sudoは、Unixライクなオペレーティングシステムで、特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです。サーバーにroot以外のユーザーとしてログインしている場合、特にCertbotをApacheやNginxなどのウェブサーバーと統合している場合は、Certbotコマンドをrootとして実行するために、sudoをCertbotコマンドの前に追加する必要があるでしょう(たとえば、sudo certbotではなく、単に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に提供することは問題ありません。Certbotはローカルマシン上で実行されるためです。

DNSクレデンシャルは、DNSプロバイダーがDNSレコードの内容を変更するために使用できるパスワードまたはその他の種類の秘密(APIキーなど)です....

DNSクレデンシャル
DNSクレデンシャル

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

これらの要件がありませんか?

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

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

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

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

    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バーに鍵アイコンがあるか確認してください。