Windows 上の Nginx
Certbot を使用するには、以下が必要です...
コマンドラインとは、テキストベースのコマンドを入力し、テキストベースの応答を受け取ることでコンピューターと対話する方法です。Certbot は通常、Unix ライクなサーバー上のコマンドラインインターフェイスから実行されます。Certbot をほとんどの目的で使用するには、通常 SSH 経由でアクセスする Web サーバーのコマンドラインでインストールして実行できる必要があります。
コマンドラインとは、テキストベースのコマンドを入力してコンピュータと対話する方法です...
HTTP(Hypertext Transfer Protocol)は、WebブラウザがWebページやその他のオンラインリソースのコンテンツをWebサーバーに要求するための、従来の安全でない方法です。これはインターネット標準であり、通常は TCP ポート 80 で使用されます。世界中のほぼすべてのWebサイトが HTTP をサポートしていますが、Certbot または HTTPS を設定する他の方法で構成されたWebサイトは、サイトの HTTP バージョンから HTTPS バージョンにユーザーを自動的にリダイレクトすることがあります。
HTTP (Hypertext Transfer Protocol) は、Web ブラウザが Web ページのコンテンツを要求するための従来の安全でない方法です...
HTTP(Hypertext Transfer Protocol)は、WebブラウザがWebページやその他のオンラインリソースのコンテンツをWebサーバーに要求するための、従来の安全でない方法です。これはインターネット標準であり、通常は TCP ポート 80 で使用されます。世界中のほぼすべてのWebサイトが HTTP をサポートしていますが、Certbot または HTTPS を設定する他の方法で構成されたWebサイトは、サイトの HTTP バージョンから HTTPS バージョンにユーザーを自動的にリダイレクトすることがあります。
それは
Certbot は通常、既存の HTTP サイトを HTTPS で動作するように切り替える(その後、必要に応じてサイトの HTTPS 証明書を継続的に更新する)ために使用されます。Certbot のドキュメントには、ポート 80 で HTTP を使用して既にアクセスできる稼働中の Web サイトがあることを前提とするか推奨しているものがあります。つまり、たとえば、Web ブラウザを使用して http:// でドメインに移動すると、Web サーバーが応答し、何らかのコンテンツが表示されます(サイトの最終バージョンではなく、デフォルトのウェルカムページであっても構いません)。Certbot の一部の使用方法ではこれが必須条件であるため、HTTP でサイトを既にセットアップしていると、スムーズなエクスペリエンスが得られます。(ポリシー上、サイトにこの方法でアクセスできない場合は、Certbot で証明書を取得するために DNS 検証を使用する必要があるでしょう。)
Certbot は通常、既存の HTTP サイトを HTTPS で動作するように切り替える(その後、必要に応じて...
Certbot は通常、既存の HTTP サイトを HTTPS で動作するように切り替える(その後、必要に応じてサイトの HTTPS 証明書を継続的に更新する)ために使用されます。Certbot のドキュメントには、ポート 80 で HTTP を使用して既にアクセスできる稼働中の Web サイトがあることを前提とするか推奨しているものがあります。つまり、たとえば、Web ブラウザを使用して http:// でドメインに移動すると、Web サーバーが応答し、何らかのコンテンツが表示されます(サイトの最終バージョンではなく、デフォルトのウェルカムページであっても構いません)。Certbot の一部の使用方法ではこれが必須条件であるため、HTTP でサイトを既にセットアップしていると、スムーズなエクスペリエンスが得られます。(ポリシー上、サイトにこの方法でアクセスできない場合は、Certbot で証明書を取得するために DNS 検証を使用する必要があるでしょう。)
オープンな
インターネットサービスは、異なる 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 は通常...
インターネットサービスは、異なる 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 での接続を受信する機能は必要ありません。)
サーバーとは、ウェブサイトやメールサービスなどのサービスを提供するインターネット上のコンピュータのことです。ほとんどのウェブサイト所有者は、データセンターに設置され、インターネット経由で管理されるサーバーの使用料をホスティングプロバイダーに支払っています。これは、物理的な専用サーバー、仮想専用サーバー(VPS)、または共有サーバーである場合があります。他のサーバーは、DNSサーバーなど、インターネットインフラストラクチャの他の部分を提供します。
サーバーとは、ウェブサイトやメールサービスなどのサービスを提供するインターネット上のコンピュータのことです...
サーバーとは、ウェブサイトやメールサービスなどのサービスを提供するインターネット上のコンピュータのことです。ほとんどのウェブサイト所有者は、データセンターに設置され、インターネット経由で管理されるサーバーの使用料をホスティングプロバイダーに支払っています。これは、物理的な専用サーバー、仮想専用サーバー(VPS)、または共有サーバーである場合があります。他のサーバーは、DNSサーバーなど、インターネットインフラストラクチャの他の部分を提供します。
でホストされており、
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は通常、Unix系オペレーティングシステムを実行しているサーバーにアクセスするために使用されますが、SSHを使用するために自分のコンピュータがUnixを実行している必要はありません。通常、特に自分のコンピュータがLinuxまたはmacOSを実行している場合は、ターミナルでssh username@example.comのようなコマンドを入力して、コンピュータのコマンドラインからSSHを使用します。ログインすると、サーバーのコマンドラインにアクセスできます。コンピュータでWindowsを使用している場合は、PuTTYなどの専用のSSHアプリケーションを使用することもできます。ほとんどのCertbotユーザーは、SSH経由でリモートサーバーのコマンドプロンプトからCertbotを実行します。
経由でアクセスでき、
sudoは、Unix系オペレーティングシステムで、特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです。root以外のユーザーとしてサーバーにログインしている場合は、特にApacheやNginxなどのウェブサーバーとのCertbotの統合を使用している場合は、Certbotコマンドの前にsudoを付けて、rootとして実行する必要があるでしょう(例えば、単にcertbotではなくsudo certbot)。(certbot-autoスクリプトは、必要に応じてsudoを自動的に実行します。sudoを指定しなかった場合も同様です。)
sudoは、Unix系オペレーティングシステムで、特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです...
sudoは、Unix系オペレーティングシステムで、特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです。root以外のユーザーとしてサーバーにログインしている場合は、特にApacheやNginxなどのウェブサーバーとのCertbotの統合を使用している場合は、Certbotコマンドの前にsudoを付けて、rootとして実行する必要があるでしょう(例えば、単にcertbotではなくsudo certbot)。(certbot-autoスクリプトは、必要に応じてsudoを自動的に実行します。sudoを指定しなかった場合も同様です。)
必要に応じて
ワイルドカード証明書とは、*.
で始まる1つ以上の名前を含む証明書です。ブラウザは、アスタリスク(*
)の代わりに任意のラベルを受け入れます。たとえば、*.example.com
の証明書は、www.example.com
、mail.example.com
、hello.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つ以上の名前を含む証明書です。ブラウザはw...
ワイルドカード証明書とは、*.
で始まる1つ以上の名前を含む証明書です。ブラウザは、アスタリスク(*
)の代わりに任意のラベルを受け入れます。たとえば、*.example.com
の証明書は、www.example.com
、mail.example.com
、hello.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レコードの内容を変更するために使用できるパスワードまたはその他の種類の秘密(APIキーなど)のことです。これらは通常、ドメインレジストラ(または、DNSプロバイダーがレジストラと同じでない場合は、別のDNSプロバイダー)によって発行されます。DNS認証情報は、サイトを完全に乗っ取るために使用できるため、機密性の高い種類の秘密です。これらの認証情報を公開したり、権限のない人物と共有したりしないでください。CertbotがDNS検証を自動的に実行できるようにするために、Certbotにコピーを提供することは問題ありません。これは、Certbotがローカルマシンで実行されるためです。
DNS認証情報とは、DNSプロバイダーがDNSレコードの内容を変更するために使用できるパスワードまたはその他の種類の秘密(APIキーなど)のことです...
DNS認証情報とは、DNSプロバイダーがDNSレコードの内容を変更するために使用できるパスワードまたはその他の種類の秘密(APIキーなど)のことです。これらは通常、ドメインレジストラ(または、DNSプロバイダーがレジストラと同じでない場合は、別のDNSプロバイダー)によって発行されます。DNS認証情報は、サイトを完全に乗っ取るために使用できるため、機密性の高い種類の秘密です。これらの認証情報を公開したり、権限のない人物と共有したりしないでください。CertbotがDNS検証を自動的に実行できるようにするために、Certbotにコピーを提供することは問題ありません。これは、Certbotがローカルマシンで実行されるためです。
これらの要件を満たしていませんか?
ご心配なく!一部のホスティングプロバイダーはHTTPSプロセスを自動化しています。ホスティングプロバイダーの完全なリストを参照してください 、またはシステムのセットアップ方法の詳細をご覧ください。
- 重要な注意事項
この手順は、現在のWindows用Certbotの実装に従っており、特に、システムコンポーネントとしてインストールされるという事実と、管理者権限が必要となるという事実に基づいています。これらの手順は、Certbotの今後のバージョンが異なるインストール方法に切り替わったときに更新されます。今のところ、HTTPサーバーのインストーラーはサポートされていません(Windows用Certbotは現在、Let's Encryptから証明書を取得できますが、Webサーバーアプリケーションにインストールすることはできません)。
- Windowsシステムの特定の要件とユーザーの知識要件
- Certbotは純粋なCLIプログラムであるため、ユーザーはコマンドラインインターフェイス(CLI)に精通している必要があります。
- ユーザーは、Certbotをインストールおよび実行するために、管理者権限を持つアカウントを使用する必要があります。
- PowerShellと
CMD.EXE
がサポートされています。両方とも、Certbotを呼び出す前に、昇格された権限で起動する必要があります。 - パス
C:\Certbot
は、現在のユーザーが書き込み可能である必要があります。
- インストール手順
- サーバーに接続します。
- このマシンの管理者権限を持つアカウントを使用して、ローカルまたはリモート(リモートデスクトップを使用)でサーバーに接続します。
- Certbotをインストールします。
- Windows 用 Certbot インストーラーの最新バージョンを https://github.com/certbot/certbot/releases/latest/download/certbot-beta-installer-win_amd64_signed.exe からダウンロードしてください。
- インストーラーを実行し、ウィザードに従ってください。インストーラーは、カスタマイズ可能なデフォルトのインストールディレクトリ
C:\Program Files(x86)
を提案します。 - Certbot のシェルを起動するには、スタートメニューを選択し、
cmd
(CMD.EXE
を実行) またはpowershell
(PowerShell を実行) を入力し、表示されるコンテキストメニューの「管理者として実行」をクリックします。 - Certbot をシェルコマンドとして実行します。
Certbot でコマンドを実行するには、シェルに
certbot
という名前を入力し、その後にコマンドとパラメータを入力します。たとえば、インラインヘルプを表示するには、次を実行します。C:\WINDOWS\system32> certbot --help
- Certbot をどのように実行するかを選択してください
ウェブサイトを一時的に停止してもよろしいですか?
はい、このマシンでウェブサーバーは現在実行されていません。
ウェブサーバーを停止してから、このコマンドを実行して証明書を取得してください。Certbot が一時的にマシン上でウェブサーバーを起動します。
C:\WINDOWS\system32> certbot certonly --standalone
いいえ、ウェブサーバーを起動したままにしておく必要があります。
既にポート 80 を使用しているウェブサーバーがあり、Certbot の実行中に停止したくない場合は、このコマンドを実行し、ターミナルの指示に従ってください。
C:\WINDOWS\system32> certbot certonly --webroot
- 自動更新のテスト
システムにインストールされた 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”
- Certbot が正常に動作したことを確認する
サイトが正しくセットアップされていることを確認するには、ブラウザで
https://yourwebsite.com/
にアクセスし、URL バーに鍵のアイコンが表示されていることを確認してください。 - Windows Apache または Nginx ユーザーへの注意
上記セクション5で説明したように、Windows 用 Certbot は現在、Apache または Nginx に証明書をインストールできません。最新リリースでは、Certbot が証明書を取得した後、ウェブサーバーアプリケーションの構成を編集して、自分で証明書をインストールする必要があります。この制限が許容できる場合は、このドキュメントの最初から読み始めて、Windows での Certbot のインストールと使用について学習してください。
Windowsのインストール手順
Certbotは、2024年2月をもってWindowsのサポートを終了しました。コミュニティのお知らせこちらに代替手段がリストされています。
- 重要な注意事項
この手順は、現在のWindows用Certbotの実装に従っており、特に、システムコンポーネントとしてインストールされるという事実と、管理者権限が必要となるという事実に基づいています。これらの手順は、Certbotの今後のバージョンが異なるインストール方法に切り替わったときに更新されます。今のところ、HTTPサーバーのインストーラーはサポートされていません(Windows用Certbotは現在、Let's Encryptから証明書を取得できますが、Webサーバーアプリケーションにインストールすることはできません)。
- Windowsシステムの特定の要件とユーザーの知識要件
- Certbotは純粋なCLIプログラムであるため、ユーザーはコマンドラインインターフェイス(CLI)に精通している必要があります。
- ユーザーは、Certbotをインストールおよび実行するために、管理者権限を持つアカウントを使用する必要があります。
- PowerShellと
CMD.EXE
がサポートされています。両方とも、Certbotを呼び出す前に、昇格された権限で起動する必要があります。 - パス
C:\Certbot
は、現在のユーザーが書き込み可能である必要があります。
- インストール手順
- サーバーに接続します。
- このマシンの管理者権限を持つアカウントを使用して、ローカルまたはリモート(リモートデスクトップを使用)でサーバーに接続します。
- Certbotをインストールします。
- Windows 用 Certbot インストーラーの最新バージョンを https://github.com/certbot/certbot/releases/latest/download/certbot-beta-installer-win_amd64_signed.exe からダウンロードしてください。
- インストーラーを実行し、ウィザードに従ってください。インストーラーは、カスタマイズ可能なデフォルトのインストールディレクトリ
C:\Program Files(x86)
を提案します。 - Certbot のシェルを起動するには、スタートメニューを選択し、
cmd
(CMD.EXE
を実行) またはpowershell
(PowerShell を実行) を入力し、表示されるコンテキストメニューの「管理者として実行」をクリックします。 - Certbot をシェルコマンドとして実行します。
Certbot でコマンドを実行するには、シェルに
certbot
という名前を入力し、その後にコマンドとパラメータを入力します。たとえば、インラインヘルプを表示するには、次を実行します。C:\WINDOWS\system32> certbot --help
- 自動更新のテスト
システムにインストールされた 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”
- Certbot が正常に動作したことを確認する
サイトが正しくセットアップされていることを確認するには、ブラウザで
https://yourwebsite.com/
にアクセスし、URL バーに鍵のアイコンが表示されていることを確認してください。 - Windows Apache または Nginx ユーザーへの注意
上記セクション5で説明したように、Windows 用 Certbot は現在、Apache または Nginx に証明書をインストールできません。最新リリースでは、Certbot が証明書を取得した後、ウェブサーバーアプリケーションの構成を編集して、自分で証明書をインストールする必要があります。この制限が許容できる場合は、このドキュメントの最初から読み始めて、Windows での Certbot のインストールと使用について学習してください。
Windowsのインストール手順
Certbotは、2024年2月をもってWindowsのサポートを終了しました。コミュニティのお知らせこちらに代替手段がリストされています。