为ConcreteCMS创建和管理网站HTTPS证书的软件包
Requires
- mlocati/idna: ^1
- mlocati/ocsp: ^1
Requires (Dev)
- phpunit/phpunit: ^4.8.36 || ^5.7 || ^6.5 || ^7.4 || ^8.5 || ^9.5
README
这是一个Concrete5软件包,允许您生成网站证书,以便它们可以使用HTTPS协议。
证书是通过ACME(自动证书管理环境)协议生成的,该协议由Let's Encrypt等提供免费服务。
功能
这是一个功能丰富的软件包
- 初始设置非常简单
- 支持多个ACME服务器和账户
- 添加ACME服务器和账户只需点击几个按钮
- 支持ACME v1和ACME v2(也称为RFC8555)协议
- 支持多个域名,包括本地和远程
- 支持包含国际字符的域名
- 支持为多个域名创建HTTPS证书
- 允许您指定在证书生成/续订时执行的操作(例如,它可以通过SSH将新生成的证书保存到远程服务器,并重新加载Web服务器配置)
- 提供完整的CLI(命令行界面)命令,您可以通过终端控制台创建/编辑/修改/删除/控制几乎一切
- 通过在crontab中添加一行,可以自动化证书的续订
- 您对已吊销的证书有完全的控制权
- 支持检查证书是否已被吊销
演示视频
初始设置
此软件包可以通过两种方式安装
- 如果您有基于composer的Concrete5安装,只需运行
composer require mlocati-concrete5-packages/acme
- 否则,您需要
- 下载此存储库并将其保存到
packages
文件夹下,文件夹名为acme
- 从此处下载
composerpkg
命令 - 在下载的
acme
文件夹内部,运行此命令composerpkg install
- 下载此存储库并将其保存到
完成上述操作后,只需浏览到/dashboard/extend/install
仪表板页面。您应该看到这个
点击安装
按钮后,ACME软件包会执行一些检查
如果出现问题,该页面将告诉您如何修复。一旦所有测试通过,请点击安装ACME
按钮。过了一会儿,软件包就安装好了,然后您会被询问是否想要轻松创建第一个所需的数据(要使用的ACME服务器和ACME账户)
通过Web界面使用
ACME软件包的主要页面位于仪表板中,在系统 & 设置
下(即/dashboard/system/acme
URL)
ACME服务器和账户
通常您只有一个ACME服务器和一个ACME账户(在安装时配置的,如上所述)。无论如何,为了测试目的,您可能需要更多。
以下是您可以使用的新增ACME服务器的界面
ACME服务器按以下方式列出
您可以添加ACME账户(无论是新账户还是之前已在ACME服务器上注册的账户)
您将有一个所有已定义账户的列表
域名
为了生成HTTPS证书,您需要定义它们有效的域名,以及当ACME服务器确认您拥有它们时控制它们的方式。
目前您有两种方式来控制ACME授权过程。
第一种方式仅适用于当前运行的concrete5安装
第二种方式允许您控制远程Web服务器(它们不必运行concrete5,您只需对其Web根目录具有SSH/FTP访问权限即可)
您还会有一个页面,其中列出了所有域名
证书
一旦您定义了想要获取HTTPS证书的域名,您可以使用类似以下界面的方式创建新的证书
您可以在同一证书中包含一个或多个域名,这对于在同一服务器上托管多个域名来说非常方便。
该软件包提供了一个页面,列出了所有证书,并提供了它们的主要详细信息
证书操作
当HTTPS证书由ACME服务器签发后,您需要将它们保存到文件中,并通知Web服务器需要刷新其配置(以便将新的证书提供给访问您网站的访客)。
您可以在本地机器或远程机器上定义一个或多个在证书生成/续订时执行的操作
证书生成、续订和操作执行
仪表板页面允许您生成证书、续订证书以及执行操作(如果有)
远程服务器
为了控制远程网站(用于ACME授权过程、保存证书文件和重新加载Web服务器配置),您可以定义一个或多个远程服务器。您对此有很好的控制权;目前支持连接到远程服务器的协议有
- FTP(在主动或被动模式下)
- 通过SSL的FTP(在主动或被动模式下)
- 使用用户名和密码的SFTP
- 使用用户名和私钥的SFTP
- 使用SSH Agent的SFTP
(请注意,FTP协议不允许运行命令,因此您无法要求Web服务器重新加载其配置,例如)
通过命令行界面使用
有大量的CLI命令可以让您执行通过Web界面可以执行的所有操作
您可以通过输入命令名称后跟--help
来获取所有允许的参数和选项的列表。
例如,要列出当前定义的证书,并获取特定证书的详细信息,您可以使用acme:certificate:list
命令
最重要的CLI命令(您可能需要每天运行一次 - 可能与crontab一起使用)是acme:certificate:refresh
命令。此命令将续订证书,执行操作,并在出现错误时向一个或多个操作员发送电子邮件。
以下是一个示例会话
测试环境
您可以通过遵循这些说明来使用此ACME concrete5软件包测试本地网站。