0、下载certbot-auto

wget https://dl.eff.org/certbot-auto

chmod a+x certbot-auto

godaddyphpcertbot通用证书申请及主动更新 Bootstrap

1、下载脚本工具

git clone https://github.com/ywdblog/certbot-letencrypt-wildcardcertificates-alydns-au

cd certbot-letencrypt-wildcardcertificates-alydns-au

chmod 0777 au.sh autxy.sh augodaddy.sh python-version/au.sh

2、配置

根据要更新的域名的供应商,选择相应的脚本:

阿里云(根据环境二选一即可):

au.sh (PHP 环境)

python-version/au.py:(Python环境,兼容Python 2/3)

腾讯云:autxy.sh(PHP 环境)

GoDaddy:augodaddy.sh(PHP 环境)

备注:环境-代表要实行脚本的做事器支持的环境

修正DNS API 密钥:

alydns.php,修正 accessKeyId、accessSecrec 变量, API key 和 Secrec 官方申请文档。

txydns.php,修正 txyaccessKeyId、txyaccessSecrec 变量, API 密钥官方申请文档。

python-version/alydns.py,修正 ACCESS_KEY_ID、ACCESS_KEY_SECRET, API key 和 Secrec 官方申请文档。

godaddydns.php,修正 accessKeyId、accessSecrec 变量,GoDaddy API 密钥官方申请文档。

备注:须要通过 API 操作阿里云 DNS 或腾讯云 DNS 的记录,以是须要去域名做事商哪儿获取 API 密钥。

4:申请证书

特殊解释: --manual-auth-hook 指定的 hook 文件四个任选其一(au.sh、autxy.sh、augodaddy.sh、python-version/au.sh),其他操作完备相同。

# 测试是否有缺点

$ ./certbot-auto certonly -d .example.com --manual --preferred-challenges dns --dry-run --manual-auth-hook /脚本目录/au.sh(autxy.sh 或 python-version/au.sh,下面统一以 au.sh 先容)

# 实际申请

$ ./certbot-auto certonly -d .example.com --manual --preferred-challenges dns --manual-auth-hook /脚本目录/au.sh

参数阐明:

certonly:表示采取验证模式,只会获取证书,不会为web做事器配置证书

--manual:表示插件

--preferred-challenges dns:表示采取DNS验证申请者合法性(是不是域名的管理者)

--dry-run:在实际申请/更新证书提高行测试,强烈推举

-d:表示须要为那个域名申请证书,可以有多个。

--manual-auth-hook:在实行命令的时候调用一个 hook 文件

如果你想为多个域名申请通配符证书(合并在一张证书中,也叫做 SAN 通配符证书),直接输入多个 -d 参数即可,比如:

$ ./certbot-auto certonly -d .liwf1.net -d .liwf2.net -d liwf.net --manual --preferred-challenges dns --dry-run --manual-auth-hook /脚本目录/au.sh

5、续期证书

1:对机器上所有证书 renew

$ ./certbot-auto renew --manual --preferred-challenges dns --manual-auth-hook /脚本目录/au.sh

2:对某一张证书进行续期

先看看机器上有多少证书:

$ ./certbot-auto certificates

renew 指定域名证书:

$ ./certbot-auto renew --cert-name simplehttps.com --manual-auth-hook /脚本目录/au.sh

6、加入 crontab自动更新证书

编辑文件 /etc/crontab,由于证书有效期是3个月,我们设置一个月进行一次更新

crontab -e

0 19 1 /bin/sh /opt/script/autossl.sh

autossl.sh:

/root/certbot-auto renew --cert-name liwf.net -deploy-hook "nginx -s reload" --manual-auth-hook ./dev/certbot-letencrypt-wildcardcertificates-alydns-au/au.sh

个中:renew成功后nginx自动重新加载配置

把稳:只有单机建议这样运行,如果要将证书同步到多台web做事器,须要有别的方案