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

Certbot インストラクション

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

私の HTTP ウェブサイトは稼働しています

Windows 上の 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以外のユーザーとしてサーバーにログインしている場合は、Certbotコマンドの前にsudoを付ける必要がある可能性があります(例:sudo certbotではなく、certbot)。これは、ApacheやNginxなどのWebサーバーとCertbotを統合して使用している場合に特に当てはまります。(certbot-autoスクリプトは、必要で指定されていない場合は自動的にsudoを実行します。)

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

sudo
sudo

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


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

ワイルドカード証明書は、*.で始まる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つ以上の名前を含む証明書です。ブラウザは…

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

ワイルドカード証明書は、*.で始まる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検証を自動的に実行させるのは問題ありません。

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

DNS認証情報
DNS認証情報

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

これらの要件を満たしていない場合?

心配しないでください!一部のホスティングプロバイダーはHTTPSプロセスを自動化しています。ホスティングプロバイダーの完全なリストを見る、またはシステムの設定方法の詳細を確認する

    Windowsインストール手順

    Certbotは、2024年2月をもってWindowsのサポートを終了しました。代替手段は、コミュニティの発表こちらに記載されています。

  1. 重要な注意事項

    この手順は、Windowsの現在のCertbot実装に従っており、特にシステムコンポーネントとしてインストールされ、管理者権限が必要であるという事実を踏まえています。これらの手順は、将来のバージョンのCertbotが異なるインストール方法に切り替わった場合に更新されます。現時点では、HTTPサーバーのインストーラーはサポートされていません(Windows版Certbotは現在、Let's Encryptから証明書を取得できますが、Webサーバーアプリケーションにインストールすることはできません)。

  2. Windowsシステムの特定の要件とユーザーの知識要件
    • Certbotは純粋なCLIプログラムであるため、ユーザーはコマンドラインインターフェース(CLI)に精通している必要があります。
    • Certbotのインストールと実行には、管理者権限を持つアカウントを使用する必要があります。
    • PowerShellとCMD.EXEがサポートされています。どちらも、Certbotを呼び出す前に、昇格された権限で開始する必要があります。
    • パスC:\Certbotは、現在のユーザーが書き込み可能である必要があります。
  3. インストール手順
    1. サーバーへの接続。
    2. このマシンの管理者権限を持つアカウントを使用して、ローカルまたはリモート(リモートデスクトップを使用)でサーバーに接続します。
    3. Certbotのインストール。
    4. Windows用Certbotインストーラーの最新バージョンをhttps://github.com/certbot/certbot/releases/latest/download/certbot-beta-installer-win_amd64_signed.exeからダウンロードします。
    5. インストーラーを実行し、ウィザードに従います。インストーラーはデフォルトのインストールディレクトリC:\Program Files(x86)を提案しますが、これはカスタマイズできます。
    6. Certbot用のシェルを開始するには、スタートメニューを選択し、cmdCMD.EXEを実行する)またはpowershell(PowerShellを実行する)を入力し、表示されるコンテキストメニューから「管理者として実行」をクリックします。
    7. シェルコマンドとしてCertbotを実行します。

    Certbotでコマンドを実行するには、シェルにcertbotという名前を入力し、その後にコマンドとそのパラメーターを続けます。たとえば、インラインヘルプを表示するには、以下を実行します。

    C:\WINDOWS\system32> certbot --help
  4. Certbotの実行方法を選択します。

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

    はい、私のウェブサーバーは現在このマシンでは実行されていません。

    ウェブサーバーを停止してから、このコマンドを実行して証明書を取得します。Certbotは、マシン上で一時的にウェブサーバーを起動します。

    C:\WINDOWS\system32> certbot certonly --standalone

    いいえ、ウェブサーバーを稼働させたままにしておく必要があります。

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

    C:\WINDOWS\system32> certbot certonly --webroot
  5. 自動更新のテスト

    システムへのCertbotのインストールには、証明書の有効期限前に自動的に更新する事前にインストールされたスケジュール済みタスクが含まれています。構成を変更しない限り、Certbotを再度実行する必要はありません。コマンドを実行して、証明書の自動更新をテストできます。

    C:\WINDOWS\system32> certbot renew --dry-run

    Certbotの実行のためにウェブサーバーを停止する必要があった場合(たとえば、ポート80が通常使用されているマシンでスタンドアロン認証プログラムを使用した場合)、組み込みコマンドを編集して、--pre-hook--post-hookフラグを追加し、ウェブサーバーを自動的に停止および開始することをお勧めします。たとえば、ウェブサーバーがApache 2.4の場合は、certbot renewコマンドに以下を追加します。

    --pre-hook “net.exe stop Apache2.4” --post-hook “net.exe start Apache2.4”
  6. Certbotが機能したことを確認します。

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

  7. Windows ApacheまたはNginxユーザー向け注意事項

    上記セクション5で説明したように、現在のWindows版Certbotでは、ApacheまたはNginxに証明書をインストールできません。最新のリリースでは、Certbotが取得した後、自分でウェブサーバーアプリケーションの構成を編集して証明書をインストールする必要があります。この制限を受け入れられる場合は、このドキュメントの先頭から始めて、WindowsへのCertbotのインストールと使用方法の詳細をご覧ください。

    Windowsインストール手順

    Certbotは、2024年2月をもってWindowsのサポートを終了しました。代替手段は、コミュニティの発表こちらに記載されています。

  1. 重要な注意事項

    この手順は、Windowsの現在のCertbot実装に従っており、特にシステムコンポーネントとしてインストールされ、管理者権限が必要であるという事実を踏まえています。これらの手順は、将来のバージョンのCertbotが異なるインストール方法に切り替わった場合に更新されます。現時点では、HTTPサーバーのインストーラーはサポートされていません(Windows版Certbotは現在、Let's Encryptから証明書を取得できますが、Webサーバーアプリケーションにインストールすることはできません)。

  2. Windowsシステムの特定の要件とユーザーの知識要件
    • Certbotは純粋なCLIプログラムであるため、ユーザーはコマンドラインインターフェース(CLI)に精通している必要があります。
    • Certbotのインストールと実行には、管理者権限を持つアカウントを使用する必要があります。
    • PowerShellとCMD.EXEがサポートされています。どちらも、Certbotを呼び出す前に、昇格された権限で開始する必要があります。
    • パスC:\Certbotは、現在のユーザーが書き込み可能である必要があります。
  3. インストール手順
    1. サーバーへの接続。
    2. このマシンの管理者権限を持つアカウントを使用して、ローカルまたはリモート(リモートデスクトップを使用)でサーバーに接続します。
    3. Certbotのインストール。
    4. Windows用Certbotインストーラーの最新バージョンをhttps://github.com/certbot/certbot/releases/latest/download/certbot-beta-installer-win_amd64_signed.exeからダウンロードします。
    5. インストーラーを実行し、ウィザードに従います。インストーラーはデフォルトのインストールディレクトリC:\Program Files(x86)を提案しますが、これはカスタマイズできます。
    6. Certbot用のシェルを開始するには、スタートメニューを選択し、cmdCMD.EXEを実行する)またはpowershell(PowerShellを実行する)を入力し、表示されるコンテキストメニューから「管理者として実行」をクリックします。
    7. シェルコマンドとしてCertbotを実行します。

    Certbotでコマンドを実行するには、シェルにcertbotという名前を入力し、その後にコマンドとそのパラメーターを続けます。たとえば、インラインヘルプを表示するには、以下を実行します。

    C:\WINDOWS\system32> certbot --help
  4. 自動更新のテスト

    システムへのCertbotのインストールには、証明書の有効期限前に自動的に更新する事前にインストールされたスケジュール済みタスクが含まれています。構成を変更しない限り、Certbotを再度実行する必要はありません。コマンドを実行して、証明書の自動更新をテストできます。

    C:\WINDOWS\system32> certbot renew --dry-run

    Certbotの実行のためにウェブサーバーを停止する必要があった場合(たとえば、ポート80が通常使用されているマシンでスタンドアロン認証プログラムを使用した場合)、組み込みコマンドを編集して、--pre-hook--post-hookフラグを追加し、ウェブサーバーを自動的に停止および開始することをお勧めします。たとえば、ウェブサーバーがApache 2.4の場合は、certbot renewコマンドに以下を追加します。

    --pre-hook “net.exe stop Apache2.4” --post-hook “net.exe start Apache2.4”
  5. Certbotが機能したことを確認します。

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

  6. Windows ApacheまたはNginxユーザー向け注意事項

    上記セクション5で説明したように、現在のWindows版Certbotでは、ApacheまたはNginxに証明書をインストールできません。最新のリリースでは、Certbotが取得した後、自分でウェブサーバーアプリケーションの構成を編集して証明書をインストールする必要があります。この制限を受け入れられる場合は、このドキュメントの先頭から始めて、WindowsへのCertbotのインストールと使用方法の詳細をご覧ください。