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

Certbot の手順

HTTP ウェブサイトはどのソフトウェアで実行されていますか?

HTTP ウェブサイトの実行環境

macOS 上の Web ホスティング製品

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

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) は、ウェブブラウザがウェブページやその他のオンラインリソースのコンテンツをウェブサーバーに要求するための、従来のセキュリティで保護されていない方法です。これはインターネット標準であり、通常 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(「セキュアシェル」の略)は、リモートサーバーに接続し、そのサーバー上のコマンドラインにアクセスするためのテクノロジーであり、多くの場合、それを管理するために使用されます。サーバーの管理者は、他の人に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以外のユーザーとしてサーバーにログインしている場合は、特にApacheやNginxなどのウェブサーバーとCertbotの統合を使用している場合は、Certbotコマンドの前にsudoを付けて、それらがrootとして実行されるようにする必要があるでしょう(例えば、単にcertbotではなくsudo certbot)。(certbot-autoスクリプトは、必要に応じて、sudoを指定しなかった場合に自動的にsudoを実行します。)

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

sudo
sudo

Sudoは、Unixライクなオペレーティングシステムで、特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです。root以外のユーザーとしてサーバーにログインしている場合は、特にApacheやNginxなどのウェブサーバーとCertbotの統合を使用している場合は、Certbotコマンドの前にsudoを付けて、それらがrootとして実行されるようにする必要があるでしょう(例えば、単にcertbotではなくsudo 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バーに鍵のアイコンがあるかを確認してください。