このドキュメントでは、Let's Encrypt証明書を取得し、Cisco Business Dashboardにインストールし、コマンドラインインターフェイス(CLI)を使用して自動更新を設定する方法について説明します。 証明書の管理に関する一般的な情報が必要な場合は、「Cisco Business Dashboardの証明書の管理」を参照してください。
Encryptは、自動化されたプロセスを使用して、無料のドメイン検証(DV)セキュアソケットレイヤ(SSL)証明書を公開する認証局です。Encryptは、Webサーバの署名済み証明書を取得するための簡単にアクセス可能なメカニズムを提供し、エンドユーザが正しいサービスにアクセスしているという安心感を与えます。詳細については、Let's Encrypt Webサイトを参照してください。
Cisco Business Dashboardで証明書を暗号化する方法は簡単です。Cisco Business Dashboardには、証明書をWebサーバで使用できるようにするだけでなく、証明書のインストールに関する特別な要件もありますが、提供されているコマンドラインツールを使用して、証明書の発行とインストールを自動化することも可能です。このドキュメントの残りの部分では、証明書を発行し、証明書の更新を自動化するプロセスについて説明します。
このドキュメントでは、HTTPの課題を使用してドメインの所有権を検証します。これには、ダッシュボードWebサーバが標準ポートTCP/80およびTCP/443でインターネットから到達可能である必要があります。Webサーバがインターネットから到達可能でない場合は、代わりにDNSチャレンジを使用することを検討してください。詳細については、「Let's Encrypt for Cisco Business Dashboard with DNS」を参照してください。
最初のステップは、ACMEプロトコル証明書を使用するソフトウェアを取得することです。この例では、certbotクライアントを使用していますが、他にも多くのオプションがあります。
証明書の更新を自動化するには、certbotクライアントをダッシュボードにインストールする必要があります。Dashboardサーバにcertbotクライアントをインストールするには、次のコマンドを使用します。
この記事では、青色のセクションがプロンプトとCLIからの出力であることに注意してください。白いテキストには、コマンドがリストされています。dashboard.example.com、pnpserver.example.com、user@example.comなどの緑色のコマンドは、環境に適したDNS名に置き換える必要があります。
次に、ホスト名の所有権を確認するために必要なチャレンジファイルをホストするようにダッシュボードWebサーバを設定する必要があります。そのためには、これらのファイルのディレクトリを作成し、Webサーバ設定ファイルを更新します。次に、ダッシュボードアプリケーションを再起動して、変更を有効にします。次のコマンドを使用します。
cbd:~$sudo mkdir /usr/lib/ciscobusiness/dashboard/www/letsencrypt cbd:~$sudo chmod 755 /usr/lib/ciscobusiness/dashboard/www/letsencrypt cbd:~$sudo bash -c 'cat > /var/lib/ciscobusiness/dashboard/nginx/nginx-loc-letsencrypt.conf' << EOF次のコマンドを使用して証明書を要求します。
cbd:~$sudo certbot certonly —webroot -w /usr/lib/ciscobusiness/dashboard/www/letsencrypt/ -d dashboard.example.com -d pnpserver.example.com —deploy-hook "cat /etc/letsencrypt/live/dashboard.com /fullchain.pem > /tmp/cbdchain.pem;/usr/bin/cisco-business-dashboard importcert -t pem -k /etc/letsencrypt/live/dashboard.example.com /privkey.pem -c /tmp/cbdchain.pemこのコマンドは、各名前でホストされるWebサービスに接続して提供されるホスト名の所有権を検証するために、暗号化サービスに指示します。これは、ダッシュボードWebサービスがインターネットからアクセス可能で、ポート80および443でホストされている必要があることを意味します。ダッシュボード管理ユーザーインターフェイス(UI)の[システム(System)] > [プラットフォーム設定(Platform Settings)] > [Webサーバ(Web Server)]ページのアクセス制御 詳細については、『Cisco Business Dashboard Administration Guide』を参照してください。
コマンドのパラメータは、次の理由で必要になります。
ceronly | 証明書を要求し、ファイルをダウンロードします。インストールしないでください。Cisco Business Dashboardの場合、証明書はWebサーバだけでなく、PnPサービスやその他の機能でも使用されます。その結果、certbotクライアントは証明書を自動的にインストールできません。 |
—webroot -w.. | ダッシュボードWebサーバからアクセスできるように、上記で作成したディレクトリにチャレンジファイルをインストールします。 |
-d dashboard.example.com -d pnpserver.example.com |
証明書に含める必要があるFQDN。リストされた最初の名前が証明書の[Common Name]フィールドに含まれ、すべての名前が[Subject-Alt-Name]フィールドにリストされます。 pnpserver.<ドメイン>名は、DNS検出を実行するときにネットワークプラグアンドプレイ機能で使用される特別な名前です。詳細については、『Cisco Business Dashboard Administration Guide』を参照してください。 |
—deploy-hook "..." | Let's Encryptサービスから受信した秘密キーと証明書チェーンをcisco-business-dashboardのコマンドラインユーティリティを使用して、ファイルがDashboard User Interface(UI)を介してアップロードされたのと同じ方法でダッシュボードアプリケーションにロードします。 証明書チェーンをアンカーするルート証明書も、ここで証明書ファイルに追加されます。これは、ネットワークプラグアンドプレイを使用して展開されている特定のプラットフォームで必要です。 |
certbotクライアントによって生成される手順に従って、証明書を作成するプロセスを実行します。
cbd:~$sudo certbot certonly —webroot -w /usr/lib/ciscobusiness/dashboard/www/letsencrypt/ -d dashboard.example.com -d pnpserver.example.com —deploy-hook "cat /etc/letsencrypt/live/dashboard.com /fullchain.pem > /tmp/cbdchain.pem;/usr/bin/cisco-business-dashboard importcert -t pem -k /etc/letsencrypt/live/dashboard.example.com /privkey.pem -c /tmp/cbdchain.pem"キャンセルする電子メールアドレスまたはCを入力してください。
電子メールアドレスを入力します(緊急の更新およびセキュリティ通知に使用されます)(「c」を入力して同意するにはAを、キャンセルするにはCを入力してください。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -[はい]にはYを、[いいえ]にはNを入力します。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -証明書が発行され、ファイルシステムの/etc/letsencrypt/liveサブディレクトリにあります。
新しい証明書の取得証明書を含むディレクトリには制限されたアクセス許可があるため、ルートユーザだけがファイルを表示できます。特にprivkey.pemファイルは機密性が高く、このファイルへのアクセスは権限のあるユーザのみに制限する必要があります。
新しい証明書を使用してダッシュボードが実行されます。証明書を作成するときに指定した名前をアドレスバーに入力してWebブラウザでダッシュボードのユーザーインターフェイス(UI)を開くと、接続が信頼され、セキュリティ保護されていることをWebブラウザが示します。
Let's Encryptで発行された証明書の有効期間は比較的短く、現在90日です。Ubuntu Linux用のcertbotパッケージは、証明書の有効性を1日2回確認し、有効期限が近づいている場合は証明書を更新するように構成されているため、証明書を最新の状態に保つ必要はありません。定期的なチェックが正しく行われていることを確認するには、最初に証明書を作成してから12時間以上待ってから、certbotログファイルで次のようなメッセージを確認します。 cbd:~$ sudo tail /var/log/letsencrypt/letsencrypt.log
2020-07-31 16:50:52,783:DEBUG:certbot.main:certbot version:0.31.0
2020-07-31 16:50:52,784:DEBUG:certbot.main:引数:['-q']
2020-07-31 16:50:52,785:DEBUG:certbot.main:検出されたプラグイン:
(PluginEntryPoint#manual,
PluginEntryPoint#null,PluginEntryPoint#standalone,PluginEntryPoint#webroot)
2020-07-31 16:50:52,793:DEBUG:certbot.log:ルートログレベルを30に設定
2020-07-31 16:50:52,793:INFO:certbot.log:デバッグログの保存先
/var/log/letsencrypt/letsencrypt.log
2020-07-31 16:50:52,802:DEBUG:certbot.plugins.selection:
要求されたオーセンティケータ<certbot.cli。
_Default object at 0x7f1152969240>およびinstaller <certbot.cli。
_0x7f1152969240のデフォルトオブジェクト>
2020-07-31 16:50:52,811:INFO:certbot.renewal:証明書はまだ更新の期限ではありません
2020-07-31 16:50:52,812:DEBUG:certbot.plugins.selection:Requested authenticator
webrootとinstallerなし
2020-07-31 16:50:52,812:DEBUG:certbot.renewal:no renewal failures
証明書の有効期限が30日以内に経過すると、certbotクライアントは証明書を更新し、更新された証明書をダッシュボードアプリケーションに自動的に適用します。
certbotクライアントの使用方法の詳細については、certbotのドキュメントページを参照してください。