roy-bongers / certbot-transip-dns-01-validator
用于通配符SSL证书的Certbot DNS-01验证(ACME-v2)
Requires
- php: ^8.0
- monolog/monolog: ^3.5
- php-di/php-di: ^7.0
- purplepixie/phpdns: dev-master
- transip/transip-api-php: ^6.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- mockery/mockery: ^1.3.0
- phpunit/phpunit: ^10.5
- symfony/phpunit-bridge: ^7.0
This package is not auto-updated.
Last update: 2024-09-30 14:07:19 UTC
README
certbot-transip-dns-01-validator
用于通配符SSL证书的Certbot DNS-01验证(ACME-v2)
我创建了此脚本以从Let’s Encrypt请求通配符SSL证书。您需要进行DNS-01挑战,这需要您创建一个DNS(TXT)记录。TransIP有一个API,允许您自动化此过程。当您需要续签证书时,您也需要再次执行DNS-01挑战。这应该会自动完成。
需求
2.5版本有以下需求。如果您使用较旧的PHP版本,则必须使用较旧的版本。从v1升级?请参阅升级指南。
- PHP >= 7.4,并启用JSON和OpenSSL扩展
- composer包管理器
安装
- 运行
composer install --no-dev
- 将
config/config.php.example
复制到config/config.php
- 在他们的网站上您的账户中获取TransIP的API密钥
- 编辑
config/config.php
并设置您的登录名和私钥。 - 确保您将此文件的访问权限设置为仅允许您的用户读取此文件的内容(在Linux上
chmod og-rwx config/config.php
)
请求通配符证书
使用此命令请求证书。将"/path/to/"替换为系统上的实际路径。更新名称服务器需要几分钟时间。请耐心等待验证完成。
certbot certonly --manual --preferred-challenges=dns \ --manual-auth-hook /path/to/auth-hook --manual-cleanup-hook /path/to/cleanup-hook \ -d 'domain.com' -d '*.domain.com'
如果您需要进行一些测试,请在certbot命令中添加staging标志
--test-cert
要自动续签您的证书,请将Certbot renew命令添加到cron作业中,使其至少每月运行一次。
/usr/bin/certbot renew
Docker
还有一个可以使用的docker容器。您可以选择绑定挂载config
文件夹或使用ENV
变量。这些变量可用:TRANSIP_LOGIN
、TRANSIP_PRIVATE_KEY
、LOGLEVEL
、LOGFILE
。仅前两个变量是必需的。
有关值的详细信息,请参阅config/config.php.example
。多行值(私钥)可能更难设置。请确保整个私钥都存储在TRANSIP_PRIVATE_KEY
变量中!
应用程序在/opt/certbot-dns-transip
目录中运行,证书在/etc/letsencrypt
中创建。
docker run -ti \ --mount type=bind,source="${PWD}"/letsencrypt,target="/etc/letsencrypt" \ --mount type=bind,source="${PWD}"/config,target="/opt/certbot-dns-transip/config" \ --mount type=bind,source="${PWD}"/logs,target="/opt/certbot-dns-transip/logs" \ rbongers/certbot-dns-transip \ certonly --manual --preferred-challenge=dns \ --manual-auth-hook=/opt/certbot-dns-transip/auth-hook \ --manual-cleanup-hook=/opt/certbot-dns-transip/cleanup-hook \ -d 'domain.com' -d '*.domain.com'
以及续签证书
docker run -ti \ --mount type=bind,source="${PWD}"/letsencrypt,target="/etc/letsencrypt" \ --mount type=bind,source="${PWD}"/config,target="/opt/certbot-dns-transip/config" \ --mount type=bind,source="${PWD}"/logs,target="/opt/certbot-dns-transip/logs" \ rbongers/certbot-dns-transip \ renew
支持的平台
代码已在基于Debian的Linux发行版(Ubuntu LTS)上测试,并当前支持PHP版本(>= 7.4)。它可能在其他系统和PHP版本上运行良好,但不提供保证。
升级指南
2.0版本是对代码库的完全重写,与原始版本不兼容。按照以下步骤进行升级
- 检出最新的master分支
- 遵循安装指南
- 将您的登录名和私钥复制到
config/config.php
后,删除Transip
文件夹 - 您已经准备好出发了!
贡献者
在创建问题请包括您试图执行的操作的详细描述以及您收到的任何输出。请随意fork项目并创建pull request。确保您的代码符合PSR-12编码规范。