手动续期证书后自动上传到阿里云
要将acme.sh续期后的脚本自动传到阿里云上,可以按照以下步骤进行:
安装阿里云CLI:在服务器上安装阿里云命令行工具(CLI),以便能够通过命令行与阿里云进行交互。可以使用以下命令进行安装:
wget https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz
&& tar xzvf aliyun-cli-linux-latest-amd64.tgz
&& chmod +x aliyun
&& cp aliyun /usr/local/bin
安装完成后,使用aliyun configure命令配置AccessKey ID、AccessKey Secret和Region Id等信息。
编写renew-hook脚本:创建一个可执行文件作为renew-hook脚本,用于在acme.sh续期证书后自动将新的证书上传到阿里云。以下是一个示例脚本:
#!/usr/bin/env bash# 阿里云AccessKey信息
AliAccessKeyId="阿里云Access Key ID"
AliAccessKeySecret="阿里云 Access Key Secret"# 从环境变量获取证书路径和域名
CERT_KEY_PATH="$CERT_KEY_PATH"
CERT_FULLCHAIN_PATH="$CERT_FULLCHAIN_PATH"
DOMAIN="$Le_Domain"# 证书名称
CERT_NAME="${DOMAIN//./_}-$(date +%s)"# CDN域名列表
DOMAIN_LIST=("cdn.wpzhiku.com"
)# 上传证书到阿里云
for _domain in "${DOMAIN_LIST[@]}"; doaliyun cdn SetCdnDomainSSLCertificate \--DomainName "$_domain" \--SSLPub="$(sed -e "/^$/d" "$CERT_FULLCHAIN_PATH")" \--SSLPri="$(cat "$CERT_KEY_PATH")" \--CertType upload \--SSLProtocol on || exit 103
done
将脚本保存到合适的位置,例如/root/sh/cdnssl.sh,并确保其具有可执行权限。
配置acme.sh的renew-hook:执行以下命令,使acme.sh在续期SSL证书时自动执行上述renew-hook脚本:
acme.sh --issue --dns dns_ali -d cdn.wpzhiku.com --renew-hook /root/sh/cdnssl.sh
这样,当证书续期时,acme.sh会自动触发renew-hook脚本,将新的证书上传到阿里云。
验证配置:可以通过执行以下命令来查看acme.sh的配置信息,确保renew-hook脚本已正确设置:
acme.sh --info -d cdn.wpzhiku.com
此外,可以手动触发证书续期,以验证整个流程是否正常工作:
acme.sh --cron --home "/usr/local/acme.sh" > /dev/null