本文へスキップ
Electronic Frontier Foundation のプロジェクト

Certbot の手順

HTTP ウェブサイトは何で動作していますか?

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

FreeBSD 上のその他

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

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を実行している必要はありません。通常、LinuxまたはmacOSを実行しているコンピューターの場合は、ターミナルのコマンドラインから`ssh username@example.com`などのコマンドを入力してSSHを使用します。ログイン後、サーバーのコマンドラインにアクセスできます。Windowsコンピューターを使用している場合は、PuTTYなどの専用のSSHアプリケーションを使用することもできます。Certbotユーザーのほとんどは、SSH経由でリモートサーバーのコマンドプロンプトからCertbotを実行しています。

SSH(「セキュアシェル」の略)は、リモートサーバーに接続し、アクセスするテクノロジーで…。

ssh
SSH

SSH(「セキュアシェル」の略)は、リモートサーバーに接続し、そのサーバーのコマンドラインにアクセスするテクノロジーで、多くの場合、サーバーの管理に使用されます。サーバーの管理者は、他の人にSSHアクセス権を付与したり、SSHアクセスを直接使用してリモートからサーバーを管理したりできます。SSHは通常、Unix系オペレーティングシステムを実行しているサーバーにアクセスするために使用されますが、SSHを使用するために自分のコンピューターがUnixを実行している必要はありません。通常、LinuxまたはmacOSを実行しているコンピューターの場合は、ターミナルのコマンドラインから`ssh username@example.com`などのコマンドを入力してSSHを使用します。ログイン後、サーバーのコマンドラインにアクセスできます。Windowsコンピューターを使用している場合は、PuTTYなどの専用のSSHアプリケーションを使用することもできます。Certbotユーザーのほとんどは、SSH経由でリモートサーバーのコマンドプロンプトからCertbotを実行しています。


を介してアクセスできます。
sudo
閉じるボタン

Sudoは、Unix系オペレーティングシステムで、ルート(システム管理者)として特定のコマンドを実行するための最も一般的なコマンドです。ルート以外のユーザーとしてサーバーにログインしている場合、特にApacheやNginxなどのWebサーバーとCertbotを統合して使用している場合は、Certbotコマンドの前にsudoを付ける必要がある場合があります(例:`sudo certbot`ではなく`certbot`)。(`certbot-auto`スクリプトは、必要に応じて、指定していなくても自動的にsudoを実行します。)

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

sudo
sudo

Sudoは、Unix系オペレーティングシステムで、ルート(システム管理者)として特定のコマンドを実行するための最も一般的なコマンドです。ルート以外のユーザーとしてサーバーにログインしている場合、特にApacheやNginxなどのWebサーバーとCertbotを統合して使用している場合は、Certbotコマンドの前にsudoを付ける必要がある場合があります(例:`sudo certbot`ではなく`certbot`)。(`certbot-auto`スクリプトは、必要に応じて、指定していなくても自動的にsudoを実行します。)


の機能を使用できます。 ワイルドカード証明書
wildcard cert
閉じるボタン

ワイルドカード証明書は、*.で始まる1つ以上の名前を含む証明書です。ブラウザは、アスタリスク(*)の代わりに任意のラベルを受け入れます。たとえば、*.example.comの証明書は、www.example.commail.example.comhello.example.comgoodbye.example.comで有効です。

ただし、のみ*.example.comという名前を含むワイルドカード証明書は、example.comでは無効です。置換されたラベルは空にできません。証明書をexample.comで有効にするには、example.com(つまり、*.部分を付けずに)も証明書に含める必要があります。

さらに、アスタリスクは1つのラベルでのみ置き換えられ、複数のラベルでは置き換えられません。たとえば、hello.goodbye.example.comという名前は、*.example.comという名前のみを含む証明書ではカバーされません。ただし、*.goodbye.example.comではカバーされます。ワイルドカード名には複数のアスタリスクを含めることはできません。たとえば、*.*.example.comは無効です。

ワイルドカード証明書は、*.で始まる1つ以上の名前を含む証明書です。ブラウザは…。

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

ワイルドカード証明書は、*.で始まる1つ以上の名前を含む証明書です。ブラウザは、アスタリスク(*)の代わりに任意のラベルを受け入れます。たとえば、*.example.comの証明書は、www.example.commail.example.comhello.example.comgoodbye.example.comで有効です。

ただし、のみ*.example.comという名前を含むワイルドカード証明書は、example.comでは無効です。置換されたラベルは空にできません。証明書をexample.comで有効にするには、example.com(つまり、*.部分を付けずに)も証明書に含める必要があります。

さらに、アスタリスクは1つのラベルでのみ置き換えられ、複数のラベルでは置き換えられません。たとえば、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. DNSプロバイダがサポートされているかどうかを確認する

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

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

    DNSプロバイダがサポートされていない場合は、ここで一時停止します。弊社のドキュメントの手順に従って、manualプラグインを使用して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. 証明書をインストールする

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

  7. 自動更新のテスト

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

    sudo certbot renew --dry-run

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

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

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