第一步:用命令生成 ssl 泛证书, 第一个一定要 *.Test.com 开头的泛解析,且自动生成到 /home/cert 目录下。
acme.sh --issue --dns dns_cf -d *.xiwaer.com -d xiwaer.com --cert-home /home/cert
第二步:通过脚本更新到宝塔证书目录,脚本自动判断 xiwaer.com,以及 xxx.xiwaer.com 和 xxx.wb.xiwaer.com 二级和三级域名
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/.acme.sh
# 设置证书存放目录
CERT_HOME="/home/cert"
PANEL_CERT_DIR="/www/server/panel/vhost/cert"
# 为每个泛域名定义一个数组,存储需要匹配的域名
declare -A domains
domains["xiwaer.com"]=""
domains["xxx.eu.org"]=""
# 统计证书安装数量
cert_count=0
# 读取每个域名文件夹
for domain in "${!domains[@]}"; do
# 检查对应的泛域名目录
if [-d "$PANEL_CERT_DIR/$domain"]; then
# 如果目录存在,检查和该泛域名相匹配的所有子域名
for subdomain in $(ls -d $PANEL_CERT_DIR/* | grep $domain); do
subdomain_name=$(basename $subdomain)
# 检查子域名是否符合泛域名的模式
if [[$subdomain_name == *"$domain"]]; then
# 安装证书
acme.sh --installcert -d "*.$domain" --cert-home $CERT_HOME --ecc \
--key-file "$PANEL_CERT_DIR/$subdomain_name/privkey.pem" \
--fullchain-file "$PANEL_CERT_DIR/$subdomain_name/fullchain.pem"
echo "Installed certificate for $subdomain_name"
((cert_count++))
fi
done
fi
done
echo "$cert_count certificates installed."
正文完
发表至: *NIX相关
2024-05-14