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

Certbot の手順

HTTP ウェブサイトはどのソフトウェア上で動作していますか?

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

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

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

sudo
sudo

sudoは、Unix系オペレーティングシステムで、root(システム管理者)として特定のコマンドを実行するための最も一般的なコマンドです。root以外のユーザーとしてサーバーにログインしている場合は、特に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(つまり、*.の部分を除く)も証明書に含める必要があります。

さらに、アスタリスクは単一のラベルでしか置き換えられず、複数のラベルでは置き換えられません。たとえば、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(つまり、*.の部分を除く)も証明書に含める必要があります。

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

を希望する場合、
DNSクレデンシャル
閉じるボタン

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

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

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

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

が必要です。

これらの要件を満たしていませんか?

ご心配なく!一部のホスティングプロバイダーは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. 証明書のインストール

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

  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バーのロックアイコンを確認してください。

  8. HAProxyに関する詳細情報が必要ですか?

    HAProxyでの証明書のインストールは複雑です。これらのガイドで詳細情報を見つけることができます。

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