acme.sh icon indicating copy to clipboard operation
acme.sh copied to clipboard

DNSAPI,多个域名在同一个供应商下的不同解析账号,多个AccessKey和SecretKey能否兼容?

Open realpg opened this issue 2 years ago • 1 comments

比如内地主要服务商阿里云,多个不同账号下或者多个不同子账号下,不同的accesskey/secretkey管理不同的域名解析

因为看.acme.sh目录下account.conf内,采用 SAVED_Ali_Key= SAVED_Ali_Secret=

保存dnskey

做一个新的域名就覆盖了旧的账号配置

如果A域名和B域名需要在同一个边缘https服务器生成证书,而这两个域名都是阿里云解析,不在一个账号下,不同的accesskey,这样自动续期是不是就不能正常工作了?

realpg avatar May 24 '23 08:05 realpg

比如内地主要服务商阿里云,多个不同账号下或者多个不同子账号下,不同的accesskey/secretkey管理不同的域名解析

因为看.acme.sh目录下account.conf内,采用 SAVED_Ali_Key= SAVED_Ali_Secret=

保存dnskey

做一个新的域名就覆盖了旧的账号配置

如果A域名和B域名需要在同一个边缘https服务器生成证书,而这两个域名都是阿里云解析,不在一个账号下,不同的accesskey,这样自动续期是不是就不能正常工作了?

直接找到对应的dnsapi文件 复制 比如 dns_ali.sh 复制 dns_alia.sh 然后批量替换dns_alia.sh 中的 ALI ali Ali_API="https://alidns.aliyuncs.com/" 这个注意别把地址也改了 ALI 替换为 ALIA ali 替换为 alia 文件中填写你的key secret

acme.sh --issue --dns dns_alia -d *.domain.com -d domain.com

opsyxc avatar Jun 12 '23 08:06 opsyxc

比如内地主要服务商阿里云,多个不同账号下或者多个不同子账号下,不同的accesskey/secretkey管理不同的域名解析 因为看.acme.sh目录下account.conf内,采用 SAVED_Ali_Key= SAVED_Ali_Secret= 保存dnskey 做一个新的域名就覆盖了旧的账号配置 如果A域名和B域名需要在同一个边缘https服务器生成证书,而这两个域名都是阿里云解析,不在一个账号下,不同的accesskey,这样自动续期是不是就不能正常工作了?

直接找到对应的dnsapi文件 复制 比如 dns_ali.sh 复制 dns_alia.sh 然后批量替换dns_alia.sh 中的 ALI ali Ali_API="https://alidns.aliyuncs.com/" 这个注意别把地址也改了 ALI 替换为 ALIA ali 替换为 alia 文件中填写你的key secret

acme.sh --issue --dns dns_alia -d *.domain.com -d domain.com

good idea! thanks

realpg avatar Jun 13 '23 14:06 realpg

建议新建不同的 linux user 账户来运行acme.sh, 每个账户可以使用独立的 api key. linux 下 新建用户的成本很低.

不建议直接改源码. 如果更新版本, 你该的源码就会被覆盖.

Neilpang avatar Jul 08 '23 06:07 Neilpang

建议新建不同的 linux user 账户来运行acme.sh, 每个账户可以使用独立的 api key. linux 下 新建用户的成本很低.

不建议直接改源码. 如果更新版本, 你该的源码就会被覆盖.

显然大佬的方案没有任何可操作性

能有一堆在不同账号下的域名,肯定是大型公司生产环境,客户自带域名来的

大公司,一个人能在服务器开一个账号就不容易了,连带着能reload生产环境的服务重置证书

不可能开一堆账号,甚至还要每个都给授权超级权限

realpg avatar Jul 10 '23 09:07 realpg

另一个方案是, 给 acme.sh 提供多个 data folder, 这样数据互相独立.

~/acmedata1/
~/acmedata2/
~/acmedata3/

在运行的时候指定不同的 data folder.

acme.sh --config-home  ~/acmedata1/    --issue .....

acme.sh --config-home  ~/acmedata2/    --issue .....


为了能自动更新, 需要手动加 crontab

40 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh"   --config-home /root/acmedata1    > /dev/null
40 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" --config-home /root/acmedata2  > /dev/null
40 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" --config-home /root/acmedata3  > /dev/null

Neilpang avatar Jul 10 '23 09:07 Neilpang

另一个方案是, 给 acme.sh 提供多个 data folder, 这样数据互相独立.

~/acmedata1/
~/acmedata2/
~/acmedata2/

在运行的时候指定不同的 data folder.

acme.sh --config-home  ~/acmedata1/    --issue .....

acme.sh --config-home  ~/acmedata2/    --issue .....

为了能自动更新, 需要手动加 crontab

40 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh"   --config-home /root/acmedata1    > /dev/null
40 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" --config-home /root/acmedata2  > /dev/null
40 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" --config-home /root/acmedata3  > /dev/null

其实不如上面的用户的方案靠谱

还有,acme.sh的自动更新会删除多出来的文件么?按说不是应该做覆盖而不是删除自己编写的新api

realpg avatar Jul 10 '23 09:07 realpg

不会删除多余的文件, 只会覆盖自己的已知的文件.

Neilpang avatar Jul 10 '23 09:07 Neilpang

后面考虑加一个开关, 让 api key 保存在 单个域名的配置里面, 而不是全局保存.

这样也有弊端, 想法, 没有时间表.

Neilpang avatar Jul 10 '23 09:07 Neilpang

后面考虑加一个开关, 让 api key 保存在 单个域名的配置里面, 而不是全局保存.

这样也有弊端, 想法, 没有时间表.

嗯,我只是提一下这种问题,没有什么紧迫性,暂时环境按照楼上大佬的办法配置了 image

realpg avatar Jul 10 '23 09:07 realpg

@realpg 我也是这样做的,更新版本要注意备份一下新建的api文件

yangguangchao avatar Aug 09 '23 08:08 yangguangchao

@realpg 我也是这样做的,更新版本要注意备份一下新建的api文件

基本不更新版本,而且把那些新建的api文件chattr +i了不会没了

realpg avatar Aug 09 '23 13:08 realpg

其实可以用 Ali_Key='' Ali_Secret='xxx' acme.sh --force --issue xxxxxxx 这样的方式调用

FlashSoft avatar Oct 30 '23 08:10 FlashSoft