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

Certbot の手順

HTTP ウェブサイトはどのような環境で動作していますか?

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

OpenBSD 上の Nginx

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

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

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

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

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

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

コマンドラインは、テキストベースのコマンドを入力してコンピュータと対話し、テキストベースの応答を受け取る方法です。Certbot は、通常 Unix 系サーバー上のコマンドラインインターフェースから実行されます。ほとんどの目的で Certbot を使用するには、Web サーバーのコマンドラインで Certbot をインストールして実行できる必要があります。これは通常、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 で動作するように切り替え(その後、必要に応じてサイトの HTTPS 証明書を継続的に更新)するために使用することを目的としています...

オンライン
すでにオンラインのウェブサイト

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 ウェブサイトが必要です。このサイトは、ポート 80 でインターネットの他の部分から利用できる必要があります。certbot --standalone を使用するには、既存のサイトは必要ありませんが、サーバーのポート 80 への接続が、インターネットサービスプロバイダーまたはウェブホスティングプロバイダーによって実行される可能性のあるファイアウォールを含むファイアウォールによってブロックされていないことを確認する必要があります。不明な場合は、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 ウェブサイトが必要です。このサイトは、ポート 80 でインターネットの他の部分から利用できる必要があります。certbot --standalone を使用するには、既存のサイトは必要ありませんが、サーバーのポート 80 への接続が、インターネットサービスプロバイダーまたはウェブホスティングプロバイダーによって実行される可能性のあるファイアウォールを含むファイアウォールによってブロックされていないことを確認する必要があります。不明な場合は、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以外のユーザーとしてサーバーにログインしている場合、特にApacheやNginxなどのウェブサーバーとのCertbotの統合を使用している場合は、Certbotコマンドをrootとして実行するために、コマンドの前にsudoを付ける必要がある可能性があります(たとえば、単にcertbotではなくsudo certbot)。(certbot-autoスクリプトは、必要に応じてsudoを自動的に実行します。指定しなかった場合でもです。)

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

sudo
sudo

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

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

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

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

  2. Certbotをインストールする

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

    pkg_add certbot
  3. 正しいDNSプラグインをインストールする

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

    pkg_add -<PLUGIN>

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

    pkg_add -cloudflare
  4. 証明書を取得する

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

  5. 証明書をインストールする

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

  6. 自動更新を設定する

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

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

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