HTTPS ファームで Let's Encrypt SSL 証明書を使用する方法

カテゴリを表示

HTTPS ファームで Let's Encrypt SSL 証明書を使用する方法

所要時間

概要 #

Let's Encryptは、 ACME (自動証明書管理環境) プロトコルを使用して、互換性のあるクライアントに無料の TLS/SSL 証明書を提供します。これらの証明書は、Web サーバーとユーザー間の通信を暗号化するために使用できます。

このチュートリアルでは、認証局とその仕組みについて簡単に説明します。 RELIANOID Let's Encryptとの統合の仕組みを確認し、 RELIANOID 使用 証明書 (ACME クライアント) を使用して、Let's Encrypt インフラストラクチャとの通信を行います。

RELIANOID Load Balancer 6.0.3以降のバージョンには、certbotラッパーと呼ばれる小さなラッパーが含まれています。 翻訳者 Certbot の Webroot 機能を使用するには、次の行でこのラッパーの動作について説明します。実稼働環境で動作させるには、このすべてを考慮に入れてください。

Let's Encrypt の検証はどのように機能しますか? #

ウェブルートの機能を簡単に説明すると、ウェブルートプラグインは、要求されたドメインごとに一時ファイルを作成することで機能します。 RELIANOID ファイルパス /usr/local/relianoid/app/letsencryptz/webroot/.well-known/acme-challenge/次に、Let's Encrypt 検証サーバーは HTTP リクエストを発行して、要求された各ドメインの DNS が letsencryptz ラッパーを実行しているサーバーに解決され、検証用の一時ファイルにアクセスできることを検証します。次の図は実際の例を示しています。

暗号化しましょう RELIANOID

前の図では、 RELIANOID ロードバランサはパブリックIPアドレスを持つルータ/ファイアウォールの背後にあります 185.79.20.147 (例として)、HTTP および HTTPS トラフィックは、VIP 192.168.101.31 (例として) を持つ内部ロード バランサに NAT され、ロード バランサは 2 つの異なるファームで構成されています。

HTTPS ファーム名 ウェブホスティング192.168.101.31:443このファームはウェブホスティングの提供を担当しており、これとともにさまざまなウェブサーバーがインターネットに公開されています。たとえば、 翻訳元:, 翻訳元:, 翻訳元: この仮想サービスで公開された Web ページをテストしています。
HTTP ファーム名 ウェブホスティングリダイレクト192.168.101.31:80このファームはリダイレクト目的にのみ使用され、すべてのトラフィックを HTTP から HTTPS に強制します。

上の図は、ドメインのSSL Let's Encrypt証明書リクエストを示しています。 翻訳元: 次のように:

1. 証明書要求はロードバランサ自体から Let's Encrypt インフラストラクチャに送信されます。
2. Let's Encryptは新しいSSL証明書リクエストを検出します 翻訳元:
3. Let's Encrypt は、要求されたホストの DNS IP 解決を実行します。 翻訳元: 結果がパブリック IP であり、リクエストを開始した元の IP と同じ IP であることを確認します。
4. この時点でLet's Encryptは 翻訳者 スクリプト(webroot cerbot)は、 ハッシュ 公共の道で http://test1.relianoid.com/.well-know/acme-challenge/ (80 TCP ポート)、ローカル ディレクトリ /usr/local/relianoid/app/letsencryptz/webroot/.well-known/acme-challenge/。 次に、 翻訳者 このファイルをインターネット(ファーム)からアクセスできるようにするために、一時的なサービスを設定します。 ウェブホスティングリダイレクト この目的のために変更されます。ファームがまだ構成されていない場合は 翻訳者 この VIP とポートに一時的なものを作成します。
6. できるだけ早く 翻訳者 一時的なサービスの作成を確認すると、Lets Encryptサーバーは一時的な検証ファイルが作成されたことを確認し、 ハッシュ 内容は正しいです。
7. 最後に、Let's Encryptサーバーは、すでに作成された証明書を使用して最初のリクエストに応答します。 一般名 (CN) 翻訳元:.
8. RELIANOID すでに作成された証明書をローカルパスに保存します ローカルディレクトリ ファーム内で設定する準備が整いました ウェブホスティング.

この段階では、新しい Let's Encrypt 証明書が HTTPS 仮想サービスに使用されます。

Let's Encrypt 自動化コマンド #

説明したように、 翻訳者 スクリプトは、SSL 証明書の作成、更新、破棄、一覧表示など、SSL 証明書を管理するために必要なアクションを自動化します。使用可能なコマンドは以下を参照してください。

root@zva6k:~# letsencryptz letsencryptz の説明: letsencryptz は、Relianoid https プロファイルの Let's Encrypt 証明書を管理するために準備された、最小限のパラメータを持つ Let's Encrypt (certbot) ラッパーです。 このラッパーは certbot webroot 機能を使用するので、パブリック Let's Encrypt アーキテクチャは、要求されたドメインの要求検証を行うために、ローカルの仮想 IP とポート (デフォルトでは TCP 80) に接続する必要があることに注意してください。そのため、「取得」パラメータが使用されるとすぐに、このスクリプトは検証目的で Let's Encrypt がアクセスする HTTP ファームを構成します。この構成は、このスクリプト自体によって自動的に行われ、使用される仮想 IP と HTTP ポート 80 が他の負荷分散ファームによって使用されていないこと、および要求されたドメインの DNS 解決が Let's Encrypt システムから到達可能であることのみを確認します。


使用法: /usr/local/relianoid/bin/letsencryptzアクション: --obtain | --destroy | --renew | --list | --listconf | --help --obtain: webroot cert-bot モジュールを使用して新しい証明書を要求します。

		コマンド: --vip - 農場 - ドメイン - ドメイン - ドメイン--test --vip: すでに設定されている仮想 IP は一時的な Web サーバーを公開するためのもので、証明書要求を確認するために Let's Encrypt パブリック サーバーによって接続されます。 仮想 IP は、ローカル プロセスによってバインドされるためには 80 ポートで空いている必要があります。空いていない場合は、代わりに --farm を使用します。
        		--farm: 「letsencryptz」と呼ばれる一時的なサービスを構成するファーム名。ファームが使用されない場合は、選択した仮想 IP に「letsencryptRelianoid」と呼ばれる一時的なファームが構成されます。
        		--domain: 証明書を要求するドメイン、つまり www.mycompany.com をご覧ください。
			--test: オプションのパラメータ。使用すると、テスト目的で証明書が要求されます。

	--destroy: 指定された証明書名を取り消して削除します。指定された証明書がファームで使用中の場合、アクションは拒否されます。
		
		コマンド: --certname --certname: 証明書名。この値はアクション --list から取得できます。

	--renew: 有効期限が近づいている証明書を更新します。コマンドは必要ありません。コマンド: --test --forcerestart --vip - 農場--test: オプションのパラメータ。使用するとドライランが実行され、証明書の更新がシミュレートされます。 
			--forcerestart: オプションのパラメーター。使用すると、更新された証明書を使用しているファームが再起動され、変更が適用されます。
                        --vip: 一時的な Web サーバーを公開する場所にすでに設定されている仮想 IP。これは、証明書の更新を確認するために Let's Encrypt パブリック サーバーによって接続されます。 仮想 IP は、ローカル プロセスによってバインドされるためには 80 ポートで空いている必要があります。空いていない場合は、代わりに --farm を使用します。
                        --farm: 「letsencryptz」と呼ばれる一時的なサービスを構成するファーム名。ファームが使用されない場合は、選択した仮想 IP に「letsencryptRelainoid」と呼ばれる一時的なファームが構成されます。

	--list: Let's Encrypt によって管理されているすべてのローカル証明書とそのステータスを一覧表示します。コマンドは必要ありません。

	--listconf: リストするRELIANOID


初めてletsencryptzを実行するときは、システムが未解決の依存関係を自動的にインストールするため、多少時間がかかります。また、使用を開始する前に構成の確認も行われます。Let's Encryptは、証明書に関連する電子メールアカウントまたは連絡目的を要求します。この電子メールアカウントは、Let's Encryptシステムに対して実行されるすべてのアクションで使用されます。この電子メールは、メイン構成ファイルで構成できます。 /usr/local/relianoid/config/global.conf、指令 $le_メール.

以下に使用例をいくつか示します。

RELIANOID Let's Encrypt 証明書の作成 #

このコマンドはドメインの新しい証明書を要求します 翻訳元:指定された VIP は内部の VIP であり、そのトラフィックはパブリック IP から内部 IP に NAT される必要があることに注意してください。Let's Encrypt がこのサービスに到達できない場合、リクエストは拒否されます。

root@zva6k:~# letsencryptz --obtain --vip 192.168.101.31 --domain test2.relianoid.com 警告: ファーム名が指定されていません。letsencryptRelianoid という名前の一時ファームが VIP 192.168.101.31 ポート 80 に作成されます。 let's encrypt 用にファームを設定しています 証明書名の検証 ドメイン test2.relianoid.com の証明書を取得しています... デバッグ ログを /var/log/letsencrypt/letsencrypt.log に保存しています 選択されたプラグイン: Authenticator webroot、Installer None 新しい証明書を取得しています 非標準のパスです。オペレーティング システムのパッケージ マネージャーによってインストールされた crontab では動作しない可能性があります ドメイン test2.relianoid.com の証明書要求 OK 作成されました PEM 形式の証明書名 test2.relianoid.com が HTTPS プロファイルの準備ができました ファーム letsencryptRelianoid の webroot 構成を破棄しています 既存の構成を削除していますletsencryptRelianoid、サービスletsencryptz 更新された証明書を使用してファームを再起動します: 

RELIANOID Let's Encrypt 証明書リスト #

このコマンドを実行すると、現在管理されている証明書が表示されます。 RELIANOID Let's Encrypt システム。

root@zva6k:~# letsencryptz --list 設定ディレクトリ /usr/local/relianoid/config/letsencrypt/ の現在の設定で利用可能なすべての証明書を一覧表示しています デバッグ ログを /var/log/letsencrypt/letsencrypt.log に保存しています 証明書名: test1.relianoid.com ドメイン: test1.relianoid.com 有効期限: 2019-09-19 10:48:02+00:00 (有効期間: 77 日) Pem 証明書ファイル: /usr/local/relianoid/config/test1_relianoid_es.pem 証明書名: test3.relianoid.com ドメイン: test3.relianoid.com 有効期限: 2019-09-26 06:32:52+00:00 (有効期間: 83 日) Pem 証明書ファイル: /usr/local/relianoid/config/test3_relianoid_es.pem


フィールドを考慮する 証明書名このフィールドはletsencryptzラッパーによって次のように認識されます。 –証明書名.

RELIANOID Let's Encrypt 証明書の更新 #

前のコマンドは、すでに生成された証明書の更新が必要かどうかをチェックします。更新が必要な場合は、自動的に更新されます。更新された証明書が使用中の場合は、変更を適用するためにファームの再起動が必要になることに注意してください。オプションを使用してください。 –強制再起動 したい場合は 翻訳者 変更を適用するために必要なすべてのファームを再起動します。

root@zva6k:~# letsencryptz --renew --vip 192.168.101.31 必要な証明書をすべて更新しています デバッグ ログを /var/log/letsencrypt/letsencrypt.log に保存しています 証明書はまだ更新期限が切れていません 証明書はまだ更新期限が切れていません

RELIANOID Let's Encrypt 証明書の削除 #

このコマンドは、指定された証明書を失効させて削除します。選択された証明書が現在 HTTPS ファームで使用されていることがシステムによって検出された場合、アクションは拒否されます。上記の例では、証明書がファームで使用されているため、削除アクションは拒否されます。 テストhttps.

root@zva6k:~# letsencryptz --destroy --certname test3.relianoid.com 現在の構成の証明書 test3.relianoid.com を取り消して削除しています... このファイルはファームで使用されているため削除できません: testhttps

証明書がファームから割り当て解除されるとすぐに、次のアクションが実行されます。

root@zva6k:~# letsencryptz --destroy --certname test3.relianoid.com 現在の構成の証明書 test3.relianoid.com を取り消して削除しています... デバッグ ログを /var/log/letsencrypt/letsencrypt.log に保存しています パス /usr/local/relianoid/config/test3_relianoid_es.pem の証明書 test3.relianoid.com を削除しました

Let's Encrypt証明書を移行する RELIANOID #

RELIANOID ロードバランサは、 証明書 ローカルパス内 /usr/local/zevenet/config/letsencrypt/既存のcertbot設定ファイル(デフォルトでは /etc/letsencrypt)を別のサーバーに RELIANOIDサーバーの既存の設定ディレクトリのtarball(tar.gzファイル)を作成し、その内容を解凍するだけで、 RELIANOID Let's Encryptの設定パス。最後に、変数を変更することを検討してください $le_メール ファイル内 グローバル.conf 以前のリクエストで使用したのと同じメールアドレスに。

Let's Encrypt 証明書クラスタリングのサポート #

RELIANOID Let's Encryptプラグインは完全にサポートされています RELIANOID クラスタサービス。Let's Encryptのすべてのアクションは、クラスタサービスによって複製された構成ファイルに保存されます。 RELIANOID クラスタサービスなので、 MASTER ノードは SLAVE ノードは自動的に実行されますが、 SLAVE 非同期化を回避するために、Let's Encrypt に関連するノードは破棄されます。

Let's Encrypt 証明書の自動更新 #

RELIANOID Let's Encrypt プラグインは、証明書の更新が必要かどうかを毎日チェックするように設定できます。システムが特定の証明書を自動的に更新し、それが何らかのファームで使用されている場合、証明書の変更を適用するためにファームが自動的に再起動されます。

自動更新を設定するには、次の手順を実行してください。

次のcronファイルを作成します /etc/cron.d/letsencryptz 以下の内容で

root@zva6k:~# cat /etc/cron.d/letsencryptz 00 00 * * * root /usr/local/relianoid/bin/letsencryptz --renew --forcerestart --vip 192.168.101.31

この設定により、更新チェックは毎日 00:00 (深夜) に実行されます。また、Let's Encrypt システムからの検証目的で、ポート 192.168.101.31 で VIP 80 が使用されます。

参考情報 #

この記事で使用されている参考文献は次のとおりです。

Webroot と Certbot
Let's Encryptの仕組み

📄 この文書をPDF形式でダウンロードする #

    EMAIL: *