trustocean / acme-client
用PHP编写的ACME客户端
Requires
- php: >=5.5.9
- ext-filter: *
- ext-hash: *
- ext-json: *
- ext-mbstring: *
- ext-openssl: *
- lib-openssl: >=0.9.8
- aws/aws-sdk-php: ^3.38
- guzzlehttp/guzzle: ^6.0
- guzzlehttp/psr7: ^1.0
- league/flysystem: ^1.0.19
- league/flysystem-memory: ^1.0
- league/flysystem-sftp: ^1.0.7
- monolog/monolog: ^1.19
- padraic/phar-updater: ^1.0
- psr/container: ^1.0
- psr/http-message: ^1.0
- psr/log: ^1.0
- swiftmailer/swiftmailer: ^5.4|^6.0
- symfony/config: ^3.0|^4.0
- symfony/console: ^3.0|^4.0
- symfony/dependency-injection: ^3.3|^4.0
- symfony/filesystem: ^3.0|^4.0
- symfony/serializer: ^3.0|^4.0
- symfony/yaml: ^3.0|^4.0
- webmozart/assert: ^1.0
- webmozart/path-util: ^2.3
Requires (Dev)
- phpspec/prophecy: ^1.8
- symfony/finder: ^3.4|^4.0
- symfony/phpunit-bridge: ^3.4.19|^4.0
- symfony/process: ^3.4|^4.0
- symfony/var-dumper: ^3.4|^4.0
Suggests
- daverandom/libdns: ^2.0
- 1.1.2
- dev-master / 1.0.x-dev
- dev-devel
- dev-feat-solver-dnspod2
- dev-feat-solver-dnspod
- dev-yml
- dev-feat-solver-aliyun
- dev-feat-install-tencentcloud-cdn
- dev-feat-install-aliyun-waf
- dev-feat-install-aliyun-cdn
- dev-feat-check-sign
- dev-feat-solver-tencentclouddns
- dev-original
- dev-rfc8555
- dev-feat-resolver-aliyundns
- dev-fix-deprecations
- dev-custom-actions
- dev-improve-dx
This package is auto-updated.
Last update: 2024-09-12 14:39:14 UTC
README
Acme PHP 是一个简单但非常可扩展的 CLI 客户端,用于 Let's Encrypt,可以帮助您获取和更新免费的 HTTPS 证书。
Acme PHP 还是一个将强大、稳定且功能强大的 ACME 协议实现带入 PHP 的倡议。使用 Acme PHP 库和核心组件,您可以将证书管理直接集成到您的应用程序中(例如,从您的网络界面更新证书)。如果您对这些功能感兴趣,请查看 acmephp/core 和 acmephp/ssl 库。
如果您想与我们聊天或有问题,请在 Symfony Slack 上 ping @tgalopin 或 @jderusse!
为什么我应该使用 Acme PHP,而不是官方客户端?
Acme PHP 在默认客户端之上提供了几个主要改进
- Acme PHP 本身就是一个单一的二进制文件:一次下载,您就可以开始工作;
- Acme PHP 基于配置文件(
~/.acmephp/acmephp.conf
),而不是命令行参数。因此,配置更加丰富,且在每次续订时都使用相同的设置; - Acme PHP 可以监控您的 CRON,并在许多不同的地方向您发送警报:电子邮件、Slack、HipChat、Flowdock、Fleep(感谢 Monolog!)
- Acme PHP 非常可扩展,可以创建您 Web 服务器所需的证书文件结构。它提供了几个默认格式化程序来创建经典文件结构(nginx、nginx-proxy、haproxy 等),但如果您需要,也可以非常容易地创建自己的格式化程序;
- Acme PHP 遵循严格的 BC 政策,防止在更新时在您的脚本或 CRON 中出现错误(有关更多信息,请参阅 Acme PHP 的向后兼容性政策);
文档
阅读官方 Acme PHP 文档。
向后兼容性政策
Acme PHP 通过严格遵守 语义版本控制 来遵循严格的 BC 政策。这意味着您的脚本、您的 CRON 任务和您的代码将在更新 Acme PHP(无论是 CLI 工具还是库)时保持正常工作,只要您保持相同的主版本(1.X.X、2.X.X 等)。
除了 CLI 和库的稳定版本的语义版本控制之外,Acme PHP 还遵循某些仅适用于 CLI 的规则
- alpha 版本可能破坏与同一版本的先前 alpha 版本的 BC(1.1.0-alpha2 可能破坏由 1.1.0-alpha1 引入的功能的 BC,但不能破坏 1.0.0 功能的 BC)。
- beta 版本不能破坏与先前 beta 版本的 BC(1.1.0-beta4 必须与 1.1.0-beta3、1.1.0-beta2、1.1.0-beta1 和 1.0.0 兼容)。只要新功能不破坏 BC,就可以在 beta 中添加新功能。
启动测试套件
Acme PHP测试套件使用Docker Boulder镜像来创建ACME服务器。为了启动测试套件,您需要为套件设置合适的Docker环境。在tests
目录下有可用的脚本:在Acme PHP根目录下,执行以下命令
# Create the Docker environment required for the suite
sudo tests/setup.sh
# Run the tests
tests/run.sh
# Clean the docker environment
tests/teardown.sh
注意:在测试过程中,您可能会遇到boulder错误。只需忽略它们并重新运行套件,这些错误是由于容器DNS问题引起的。
警告:由于acmephp/testing-ca Docker镜像需要映射到主机网络,您可能会遇到端口冲突。有关更多信息,请参阅https://github.com/acmephp/testing-ca。
运行命令
运行命令是一个整合命令,它与domain
配置文件一起工作,例如
contact_email: contact@company key_type: RSA # RSA or EC (for ECDSA). Default "RSA" defaults: distinguished_name: country: FR locality: Paris organization_name: MyCompany solver: http certificates: - domain: example.com distinguished_name: organization_name: MyCompany Internal solver: route53 subject_alternative_names: - '*.example.com' - www.subdomain.example.com install: - action: install_aws_elb region: eu-west-1 loadbalancer: my_elb - domain: www.example.com solver: name: http-file adapter: ftp # ftp or sftp or local, see https://flysystem.thephpleague.com/ root: /var/www/ host: ftp.example.com username: username password: password # port: 21 # passive: true # ssl: true # timeout: 30 # privateKey: path/to/or/contents/of/privatekey
用法
$ acmephp run path-to-config.yml
使用Docker
您还可以使用Docker镜像生成证书。证书和密钥存储在卷/root/.acmephp
中
docker run --rm -ti -v /cache/.acmephp:/root/.acmephp -v $PWD/.config.yml:/etc/acmephp.yml:ro acmephp/acmephp:latest run /etc/acmephp.yml