Windows 上の HAProxy
Certbot を使用するには…
コマンドラインは、テキストベースのコマンドを入力してテキストベースの返信を受け取ることでコンピューターと対話する方法です。Certbot は、通常 Unix 系サーバー上でコマンドラインインターフェースから実行されます。Certbot をほとんどの目的で使用するには、ウェブサーバーのコマンドラインでインストールして実行できる必要があります。これは通常、SSH を介してアクセスします。
コマンドラインは、テキストベースのコマンドを入力してコンピューターと対話する…
HTTP(Hypertext Transfer Protocol)は、ウェブブラウザがウェブサーバーからウェブページやその他のオンラインリソースのコンテンツを要求する従来の方法ですが、安全ではありません。これはインターネット標準であり、通常は TCP ポート 80 で使用されます。世界中のほとんどすべてのウェブサイトが HTTP をサポートしていますが、Certbot またはその他の HTTPS 設定方法を使用して設定されたウェブサイトは、サイトの HTTP バージョンから HTTPS バージョンにユーザーを自動的にリダイレクトする場合があります。
HTTP(Hypertext Transfer Protocol)は、ウェブブラウザが…
HTTP(Hypertext Transfer Protocol)は、ウェブブラウザがウェブサーバーからウェブページやその他のオンラインリソースのコンテンツを要求する従来の方法ですが、安全ではありません。これはインターネット標準であり、通常は TCP ポート 80 で使用されます。世界中のほとんどすべてのウェブサイトが HTTP をサポートしていますが、Certbot またはその他の HTTPS 設定方法を使用して設定されたウェブサイトは、サイトの HTTP バージョンから HTTPS バージョンにユーザーを自動的にリダイレクトする場合があります。
既に
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 検証を使用する必要がある可能性があります。)
開いている
異なるインターネットサービスは、異なる 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などのWebサーバーとCertbotを統合して使用している場合は、Certbotコマンドの前にsudoを付ける必要がある場合があります(例:`sudo certbot`ではなく`certbot`)。(certbot-autoスクリプトは、必要に応じて、指定されていない場合でも自動的にsudoを実行します。)
sudoは、Unix系オペレーティングシステムで、root(システム管理者)として特定のコマンドを実行するために最も一般的に使用されるコマンドです…
sudoは、Unix系オペレーティングシステムで、root(システム管理者)として特定のコマンドを実行するために最も一般的に使用されるコマンドです。root以外のユーザーとしてサーバーにログインしている場合、特にApacheやNginxなどのWebサーバーとCertbotを統合して使用している場合は、Certbotコマンドの前にsudoを付ける必要がある場合があります(例:`sudo certbot`ではなく`certbot`)。(certbot-autoスクリプトは、必要に応じて、指定されていない場合でも自動的にsudoを実行します。)
の機能を使用できます。 (
ワイルドカード証明書は、*.
で始まる1つ以上の名前を含む証明書です。ブラウザは、アスタリスク(*
)の代わりに任意のラベルを受け入れます。たとえば、*.example.com
の証明書は、www.example.com
、mail.example.com
、hello.example.com
、goodbye.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.com
、mail.example.com
、hello.example.com
、goodbye.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プロバイダーが使用できるようにするパスワードまたはその他の秘密情報(APIキーなど)です。通常、ドメインレジストラ(または、DNSプロバイダーがレジストラと同じではない場合は別のDNSプロバイダー)によって発行されます。DNS認証情報は、サイト全体を完全に乗っ取るために使用できるため、機密性の高い秘密情報です。これらの認証情報を公開したり、権限のないユーザーと共有したりしないでください。ローカルマシンで実行されるため、Certbotにコピーを提供して自動的にDNS検証を実行させることは問題ありません。
DNS認証情報は、DNSレコードの内容を変更するためにDNSプロバイダーが使用できるようにするパスワードまたはその他の秘密情報(APIキーなど)です…
これらの要件を満たしていませんか?
ご心配なく!一部のホスティングプロバイダーは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 を実行するためにウェブサーバーを停止する必要があった場合(たとえば、ポート 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のサポートを終了しました。代替手段については、コミュニティ発表こちらをご覧ください。