Windows 上の Nginx
Certbot を使用するには、以下が必要です...
コマンドラインとは、テキストベースのコマンドを入力してコンピュータと対話し、テキストベースの応答を受け取る方法です。Certbot はコマンドラインインターフェースから実行され、通常は Unix 系サーバー上で実行されます。ほとんどの目的で Certbot を使用するには、Web サーバーのコマンドラインにインストールして実行できる必要があります。通常、これは SSH 経由でアクセスします。
コマンドラインとは、テキストベースのコマンドを入力してコンピュータと対話し、テキストベースの応答を受...
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 Web サイトやポート 80 で接続を受信する機能は必要ありません。)
異なるインターネットサービスは、異なる TCP ポート番号を使用することで区別されます。暗号化されていない HTTP は通常 TCP ポート...
異なるインターネットサービスは、異なる 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 Web サイトやポート 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などのWebサーバーとのCertbotの統合を使用している場合、Certbotコマンドの前にsudoを付ける必要があります(たとえば、単にcertbotではなくsudo certbot)。(certbot-autoスクリプトは、必要に応じてsudoを自動的に実行します。sudoを指定しなかった場合でも。)
sudoは、Unix系オペレーティングシステムで、特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです...
sudoは、Unix系オペレーティングシステムで、特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです。root以外のユーザーとしてサーバーにログインしている場合は、特にApacheやNginxなどのWebサーバーとのCertbotの統合を使用している場合、Certbotコマンドの前にsudoを付ける必要があります(たとえば、単に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つ以上の名前を含む証明書です。ブラウザは...
ワイルドカード証明書は、*.
で始まる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がローカルマシンで実行されるためです。
DNS認証情報とは、DNSプロバイダーがDNSレコードの内容を変更するために使用できるパスワードまたはその他の種類の秘密情報(APIキーなど)です...
DNS認証情報とは、DNSプロバイダーがDNSレコードの内容を変更するために使用できるパスワードまたはその他の種類の秘密情報(APIキーなど)です。これらは通常、ドメインレジストラ(または、DNSプロバイダーがレジストラと同じでない場合は別のDNSプロバイダー)によって発行されます。DNS認証情報は、サイトを完全に乗っ取るために使用できるため、機密性の高い秘密情報の一種です。これらの認証情報を公に、または許可されていない人物と共有しないでください。CertbotにDNS検証を自動的に実行させるために、認証情報のコピーを提供しても問題ありません。これは、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 renew --dry-run
Certbotを実行するためにWebサーバーを停止する必要があった場合(たとえば、ポート80が通常使用されているマシンでスタンドアロン認証ツールを使用した場合は)、組み込みコマンドを編集して、Webサーバーを自動的に停止および開始するための
--pre-hook
および--post-hook
フラグを追加する必要があります。たとえば、Webサーバーが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が証明書を取得した後、Webサーバーアプリケーションの設定を編集して自分で証明書をインストールする必要があります。この制限が許容できる場合は、このドキュメントの最初から始めて、WindowsへのCertbotのインストールと使用について学習してください。
Windowsインストール手順
Certbotは2024年2月をもってWindowsのサポートを終了しました。コミュニティの告知こちらに代替案が掲載されています。