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

Certbot の手順

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

私の HTTP ウェブサイトは以下で動作しています オン

Windows 上のウェブホスティング製品

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

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

A laptop
に対する慣れ
コマンドライン
Close button

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

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

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

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

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 サーバーから 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 への接続がファイアウォール(インターネットサービスプロバイダーまたは Web ホスティングプロバイダーによって実行されているファイアウォールを含む)によってブロックされていないことを確認する必要があります。わからない場合は、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 への接続がファイアウォール(インターネットサービスプロバイダーまたは Web ホスティングプロバイダーによって実行されているファイアウォールを含む)によってブロックされていないことを確認する必要があります。わからない場合は、ISP またはホスティングプロバイダーに確認してください。 (DNS 検証では、Let's Encrypt がサーバーへのインバウンド接続を確立する必要がないため、特にこの方法では、既存の HTTP ウェブサイトやポート 80 で接続を受信できる必要はありません。)

A server
...これは、
サーバー
閉じるボタン

サーバーとは、インターネット上でウェブサイトや電子メールサービスなどのサービスを提供するコンピューターです。ほとんどのウェブサイト所有者は、データセンターに設置され、インターネット経由で管理されているサーバーの使用料をホスティングプロバイダーに支払っています。これは、物理的な専用サーバー、仮想プライベートサーバー(VPS)、または共有サーバーの場合があります。他のサーバーは、DNSサーバーなど、インターネットインフラストラクチャの他の部分を担っています。

サーバーとは、インターネット上でウェブサイトや電子メールサービスなどのサービスを提供するコンピューターです...

サーバー
サーバー

サーバーとは、インターネット上でウェブサイトや電子メールサービスなどのサービスを提供するコンピューターです。ほとんどのウェブサイト所有者は、データセンターに設置され、インターネット経由で管理されているサーバーの使用料をホスティングプロバイダーに支払っています。これは、物理的な専用サーバー、仮想プライベートサーバー(VPS)、または共有サーバーの場合があります。他のサーバーは、DNSサーバーなど、インターネットインフラストラクチャの他の部分を担っています。


上でホストされており、
ssh
閉じるボタン
SSH

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

SSH(「セキュアシェル」の略)は、リモートサーバーに接続してアクセスするための技術です...

ssh
SSH

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


経由でアクセスできます。
sudo
閉じるボタン

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

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

sudo
sudo

sudoは、Unixライクなオペレーティングシステムで、特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです。root以外のユーザーとしてサーバーにログインしている場合、Certbotコマンドの前にsudoを付けてrootとして実行する必要がある場合があります(たとえば、certbotではなくsudo certbot)。これは、ApacheやNginxなどのWebサーバーと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がローカルマシンで実行されるため、Certbotにコピーを提供してDNS検証を自動的に実行させることは問題ありません。

DNS認証情報とは、DNSプロバイダーがDNSレコードの内容を変更するために使用できるパスワードまたはその他の種類のシークレット(APIキーなど)です...

DNS認証情報
DNS認証情報

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

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

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

    Windowsのインストール手順

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

  1. 重要な注意事項

    この手順は、Windows向けのCertbotの現在の実装、特にシステムコンポーネントとしてインストールされ、管理者権限が必要であるという事実rに従っています。これらの手順は、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 のシェルを起動するには、スタートメニューを選択し、`cmd`(`CMD.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の現在の実装、特にシステムコンポーネントとしてインストールされ、管理者権限が必要であるという事実rに従っています。これらの手順は、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 のシェルを起動するには、スタートメニューを選択し、`cmd`(`CMD.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 のインストールと使用について詳しく学習してください。