4 Commits
Author SHA1 Message Date
mack-a 85a2e32188 Merge branch 'master' of another.github.com:mack-a/v2ray-agent 2026-06-07 21:45:46 +08:00
mack-a c959c40b32 feat(脚本): 修复xray核心下载问题 2026-06-07 21:45:41 +08:00
mack-a e33374a74d Merge pull request #1318 from LiebeLee/fix/dns-api-non-wildcard-public-suffix
fix(脚本): 修复 DNS API 申请非通配符证书时仍签发根域导致失败
2026-06-07 21:41:43 +08:00
LiebeLee e53655d573 fix(脚本): 修复 DNS API 申请非通配符证书时仍签发根域导致失败的问题
acmeInstallSSL 在用户回答"是否使用 *.xxx 申请通配符证书 [y/n]"
为 n 时,仍然会向 acme.sh 追加 -d ${dnsTLSDomain},相当于同时
申请子域 + 根域两个证书。这导致使用 dpdns.org、is-a.dev 等
Public Suffix 上的子域时,CF / 阿里云 API 因无权操作根域 zone
直接返回 invalid domain,整体签发失败。

修复:仅当用户选择通配符(y)时才追加根域 -d,n 分支只签发用户
输入的子域。cloudflare 与 aliyun 两个分支同步修复,standalone
分支本就只签单域名,不受影响。

复现:
  域名: abc.dpdns.org
  选择 DNS API -> cloudflare -> 输入 CF Token
  是否使用 *.dpdns.org 通配符 [y/n]: n
  日志报错: invalid domain  _acme-challenge.dpdns.org
2026-06-03 23:32:59 +08:00
+15 -5
View File
@@ -1876,16 +1876,21 @@ selectAcmeInstallSSL() {
# 安装SSL证书
acmeInstallSSL() {
local dnsAPIDomain="${tlsDomain}"
local dnsAPIExtraDomain="-d ${dnsTLSDomain}"
if [[ "${dnsAPIStatus}" == "y" ]]; then
dnsAPIDomain="*.${dnsTLSDomain}"
else
# 用户选择不使用通配符时,只为自己输入的子域申请证书,
# 避免脚本追加根域 -d ${dnsTLSDomain} 导致根域不属于自己(例如 dpdns.org 等公共后缀)时签发失败
dnsAPIExtraDomain=""
fi
if [[ "${dnsAPIType}" == "cloudflare" ]]; then
echoContent green " ---> DNS API 生成证书中"
sudo CF_Token="${cfAPIToken}" "$HOME/.acme.sh/acme.sh" --issue -d "${dnsAPIDomain}" -d "${dnsTLSDomain}" --dns dns_cf -k ec-256 --server "${sslType}" ${sslIPv6} 2>&1 | tee -a /etc/v2ray-agent/tls/acme.log >/dev/null
sudo CF_Token="${cfAPIToken}" "$HOME/.acme.sh/acme.sh" --issue -d "${dnsAPIDomain}" ${dnsAPIExtraDomain} --dns dns_cf -k ec-256 --server "${sslType}" ${sslIPv6} 2>&1 | tee -a /etc/v2ray-agent/tls/acme.log >/dev/null
elif [[ "${dnsAPIType}" == "aliyun" ]]; then
echoContent green " ---> DNS API 生成证书中"
sudo Ali_Key="${aliKey}" Ali_Secret="${aliSecret}" "$HOME/.acme.sh/acme.sh" --issue -d "${dnsAPIDomain}" -d "${dnsTLSDomain}" --dns dns_ali -k ec-256 --server "${sslType}" ${sslIPv6} 2>&1 | tee -a /etc/v2ray-agent/tls/acme.log >/dev/null
sudo Ali_Key="${aliKey}" Ali_Secret="${aliSecret}" "$HOME/.acme.sh/acme.sh" --issue -d "${dnsAPIDomain}" ${dnsAPIExtraDomain} --dns dns_ali -k ec-256 --server "${sslType}" ${sslIPv6} 2>&1 | tee -a /etc/v2ray-agent/tls/acme.log >/dev/null
else
echoContent green " ---> 生成证书中"
sudo "$HOME/.acme.sh/acme.sh" --issue -d "${tlsDomain}" --standalone -k ec-256 --server "${sslType}" ${sslIPv6} 2>&1 | tee -a /etc/v2ray-agent/tls/acme.log >/dev/null
@@ -2502,10 +2507,15 @@ updateXray() {
readInstallType
if [[ -z "${coreInstallType}" || "${coreInstallType}" != "1" ]]; then
if [[ "${prereleaseStatus}" == "true" ]]; then
version=$(curl -s "https://api.github.com/repos/XTLS/Xray-core/releases?per_page=5" | jq -r ".[]|select (.prerelease==${prereleaseStatus})|.tag_name" | head -1)
else
version=$(curl -s https://api.github.com/repos/XTLS/Xray-core/releases/latest | jq -r .tag_name)
fi
if [[ -n "$1" ]]; then
version=$1
else
version=$(curl -s "https://api.github.com/repos/XTLS/Xray-core/releases?per_page=5" | jq -r ".[]|select (.prerelease==${prereleaseStatus})|.tag_name" | head -1)
fi
echoContent green " ---> Xray-core版本:${version}"
@@ -9978,7 +9988,7 @@ menu() {
cd "$HOME" || exit
echoContent red "\n=============================================================="
echoContent green "作者:mack-a"
echoContent green "当前版本:v3.5.19"
echoContent green "当前版本:v3.5.20"
echoContent green "Githubhttps://github.com/mack-a/v2ray-agent"
echoContent green "描述:八合一共存脚本\c"
showInstallStatus