本文档说明如何获取Let's Encrypt证书,将其安装在思科业务控制面板上,以及如何使用命令行界面(CLI)设置自动续订。如果您需要有关管理证书的一般信息,请参阅思科业务控制面板上的管理证书一文。
Let's Encrypt是一个证书颁发机构,它使用自动化流程向公众提供免费的域验证(DV)安全套接字层(SSL)证书。Let's Encrypt提供了一种易于访问的机制,用于获取Web服务器的签名证书,使最终用户确信其正在访问正确的服务。有关详细信息,请访问让我们加密网站。
通过思科业务控制面板使用让我们加密证书非常简单。虽然思科业务控制面板对证书安装有一些特殊要求,除了将证书提供给Web服务器外,使用提供的命令行工具自动颁发和安装证书仍是可行的。本文档的其余部分将介绍颁发证书和自动续订证书的过程。
本文档使用HTTP质询来验证域所有权。这就要求从互联网的标准端口TCP/80和TCP/443可以访问仪表板Web服务器。如果无法从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名称。
接下来,需要将控制面板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此命令指示让我们加密服务验证通过连接到每个名称上承载的Web服务来提供的主机名的所有权。这意味着仪表板Web服务必须可以从Internet访问并托管在端口80和443上。使用控制面板管理用户界面(UI)中System > Platform Settings > Web Server页面上的访问控制设置,可以限制对控制面板应用的访问。有关详细信息,请参阅《思科业务控制面板管理指南》。
需要命令上的参数,原因如下:
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取消。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -为“Yes”输入Y或N。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -已颁发证书,可以在文件系统的/etc/letsencrypt/live子目录中找到:
获取新证书包含证书的目录具有受限权限,因此只有root用户可以查看这些文件。尤其是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:Arguments: ['-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>和安装程序<certbot.cli。
_默认对象为0x7f1152969240>
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文档页。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
27-Aug-2020 |
初始版本 |