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

Certbot の手順

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

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

FreeBSD 上の HAProxy

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

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(「セキュアシェル」の略)は、リモートサーバーに接続し、そのサーバーのコマンドラインにアクセスするための技術で、多くの場合、サーバーを管理するために使用されます。サーバー管理者は、他の人に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として実行するためにsudoを前に付ける必要があるでしょう(たとえば、単にcertbotではなくsudo certbot)。特に、ApacheやNginxのようなウェブサーバーとのCertbotの統合を使用している場合はそうです。(certbot-autoスクリプトは、必要に応じてsudoを自動的に実行し、指定しなかった場合は実行します。)

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

sudo
sudo

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

    Certbot パッケージをインストールするには、マシンのコマンドラインでこのコマンドを実行してください。

    pkg install security/py-certbot

    または、お好みでポートから Certbot をインストールしてください。

    ポートから Certbot をインストールするには、マシンのコマンドラインでこのコマンドを実行してください。

    cd /usr/ports/security/py-certbot && make install clean
  3. Certbot の実行方法を選択してください。

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

    はい、このマシンでは現在 Web サーバーが実行されていません。

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

    sudo certbot certonly --standalone

    いいえ、Web サーバーを実行し続ける必要があります。

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

    sudo certbot certonly --webroot
  4. 証明書をインストールします。

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

  5. 自動更新をテストします。

    システム上の Certbot パッケージには、証明書の有効期限が切れる前に自動的に更新する cron ジョブまたは systemd タイマーが付属しています。設定を変更しない限り、Certbot を再度実行する必要はありません。このコマンドを実行して、証明書の自動更新をテストできます。

    sudo certbot renew --dry-run

    Certbot を更新するコマンドは、以下のいずれかの場所にインストールされています。

    • /etc/crontab/
    • /etc/cron.*/*
    • systemctl list-timers
  6. Certbot が正常に動作したことを確認します。

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

  7. HAProxy 固有の情報をもっと知りたいですか?

    HAProxy を使用した証明書のインストールは複雑です。これらのガイドで詳細を確認できます。

    または、Greenhost の実験的なサードパーティ製 HAProxy プラグインの使用に興味があるかもしれません。

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

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

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

    DNS プロバイダーがサポートされていない場合は、ここで一時停止してください。ドキュメントのこれらの手順を使用して、手動プラグインで Certbot を実行してください。

    サポートされていますか?

    DNS プロバイダーがサポートされている場合は、以下の残りの手順に進んでください。

  2. サーバーにSSH接続します

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

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

    Certbot パッケージをインストールするか...

    Certbot パッケージをインストールするには、マシンのコマンドラインでこのコマンドを実行してください。

    pkg install security/py-certbot

    または、お好みでポートから Certbot をインストールしてください。

    ポートから Certbot をインストールするには、マシンのコマンドラインでこのコマンドを実行してください。

    cd /usr/ports/security/py-certbot && make install clean
  4. 適切な DNS プラグインをインストールします。

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

    pkg install security/py-certbot-dns-<PLUGIN>

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

    pkg install security/py-certbot-dns-cloudflare
  5. 証明書を取得します。

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

  6. 証明書をインストールします。

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

  7. 自動更新をテストします。

    システム上の Certbot パッケージには、証明書の有効期限が切れる前に自動的に更新する cron ジョブまたは systemd タイマーが付属しています。設定を変更しない限り、Certbot を再度実行する必要はありません。このコマンドを実行して、証明書の自動更新をテストできます。

    sudo certbot renew --dry-run

    Certbot を更新するコマンドは、以下のいずれかの場所にインストールされています。

    • /etc/crontab/
    • /etc/cron.*/*
    • systemctl list-timers
  8. Certbot が正常に動作したことを確認します。

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

  9. HAProxy 固有の情報をもっと知りたいですか?

    HAProxy を使用した証明書のインストールは複雑です。これらのガイドで詳細を確認できます。

    または、Greenhost の実験的なサードパーティ製 HAProxy プラグインの使用に興味があるかもしれません。