本檔案將說明如何取得Let's Encrypt憑證、將其安裝在Cisco Business Dashboard上,以及使用指令行介面(CLI)設定自動續訂。 如果您想瞭解有關管理證書的一般資訊,請檢視Cisco Business Dashboard上的文章Manage Certificates。
Let's Encrypt是一個證書頒發機構,它使用自動過程向公眾提供免費的域驗證(DV)安全套接字層(SSL)證書。Let's Encrypt提供一種易於訪問的機制來獲取Web伺服器的簽名證書,使終端使用者確信他們訪問的是正確的服務。如需詳細資訊,請參閱讓我們加密網站。
在Cisco Business Dashboard上使用Let's Encrypt certificates相當簡單。儘管Cisco Business Dashboard對證書安裝有一些特殊要求,除了僅向Web伺服器提供證書外,使用提供的命令列工具自動頒發和安裝證書仍是可行的。本文檔的其餘部分將介紹頒發證書和自動續訂證書的過程。
本文檔使用HTTP挑戰來驗證域所有權。這要求儀表板的Web伺服器可以通過標準埠TCP/80和TCP/443從Internet訪問。如果無法從Internet訪問Web伺服器,請考慮改用DNS挑戰。如需詳細資訊,請檢視使用Let's Encrypt for Cisco Business Dashboard with DNS。
第一步是獲取使用ACME協定證書的軟體。在本例中,我們使用certbot client,但還有許多其他選項可用。
要自動續訂證書,必須在控制面板上安裝certbot客戶端。要在儀表板伺服器上安裝certbot客戶端,請使用以下命令:
必須注意的是,本文中藍色部分是來自CLI的提示和輸出。白色文本列出命令。綠色命令(包括dashboard.example.com、pnpserver.example.com和user@example.com)應替換為適合您的環境的DNS名稱。
接下來,需要將Dashboard 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.example.com/fullchain.pem /etc/ssl/certs/DST_Root_CA_X3.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此命令指示Let's Encrypt服務驗證通過連線到每個名稱上承載的Web服務提供的主機名的所有權。這意味著儀表板Web服務必須可以從Internet訪問,並且託管在埠80和443上。可以使用儀表板管理使用者介面(UI)中「系統」>「平台設定」>「Web伺服器」頁上的「訪問控制」設定來限制對儀表板應用程式的訪問。 有關詳細資訊,請參閱《Cisco Business Dashboard管理指南》。
需要命令上的引數的原因如下:
certonly | 請求證書並下載檔案。請勿嘗試安裝。對於Cisco Business Dashboard,證書不僅由Web伺服器使用,還由PnP服務和其他功能使用。因此,certbot客戶端無法自動安裝證書。 |
—webroot -w ... | 將質詢檔案安裝在上面建立的目錄中,以便通過儀表板Web伺服器訪問它們。 |
-d dashboard.example.com -d pnpserver.example.com |
應包括在證書中的FQDN。列出的第一個名稱將包含在證書的「公用名」欄位中,並且所有名稱將列在「主題 — 替代名稱」欄位中。 pnpserver.<domain>名稱是執行DNS發現時網路即插即用功能使用的特殊名稱。有關詳細資訊,請參閱《思科業務控制面板管理指南》。 |
—deploy-hook "。." | 使用cisco-business-dashboard命令列實用程式提取從Let's Encrypt服務接收的私鑰和證書鏈,並以與通過儀表板使用者介面(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.example.com/fullchain.pem /etc/ssl/certs/DST_Root_CA_X3.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套件設定為每天檢查兩次憑證的有效性,並在接近到期時續訂憑證,因此無需採取任何行動將憑證保持最新。要驗證定期檢查是否正確執行,請在最初建立證書後等待至少12小時,然後檢查certbot日誌檔案是否有類似以下消息: cbd:~$ sudo tail /var/log/letsencrypt/letsencrypt.log
2020-07-31 16:50:52,783:DEBUG:certbot.main:certbot版本: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。
位於0x7f1152969240>和安裝程式<certbot.cli的預設對象(_D)。
0x7f處的預設對象(_D1152969240>
2020-07-31 16:50:52,811:INFO:certbot.renewal:證書尚未到期續訂
2020-07-31 16:50:52,812:DEBUG:certbot.plugins.selection:請求的身份驗證器
webroot和安裝程式無
2020-07-31 16:50:52,812:DEBUG:certbot.renewal:no renewal failures
在證書到期日期經過三十天內的足夠時間後,certbot客戶端將自動更新證書並將更新的證書應用到儀表板應用程式。
有關使用certbot使用者端的詳細資訊,請參閱certbot檔案頁面。