Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

发现好像只能支持最后保存的一个API Key 在 account.conf 里也只看到一个 是不是意味着只能用一个账号来自动dns更新证书? #2055

Closed
vagile-cn opened this issue Jan 25, 2019 · 22 comments

Comments

@vagile-cn
Copy link

发现好像只能支持最后保存的一个API Key 在 account.conf 里也只看到一个 是不是意味着只能用一个账号来自动dns更新证书?

@Neilpang
Copy link
Member

目前是的.

@baoang
Copy link

baoang commented Jan 26, 2019

哦,看来作者快要发布下一版本,把不同的账号信息分置到不同的目录中了

@Spinestars
Copy link

之前没注意到这点, 差点被坑死...
我们有多个 route53. 结果这两天发现证书自动更新都没起作用, 才发现只有最后一次创建的 dns api 下的更新了...

@ailuoy
Copy link

ailuoy commented Feb 14, 2019

@Neilpang 希望能早日增加这个功能吧 同被坑过... 还是感谢 作者开源这么棒的作品

@ancon
Copy link

ancon commented Feb 18, 2019

我也很期待~ @Neilpang

@yanhuixie
Copy link

话说,使用docker是不是能变通地解决这个问题?
比如把不同的api key和account.conf 打包到不同的docker volume里。
每个container关联到不同的docker volume,以daemon运行。

@yanhuixie
Copy link

或者还有个简单的办法,既然api key 存储在account.conf 里,那加一个命令行指令,让用户可以指定使用不同路径的account.conf 就好了嘛。

@Spinestars
Copy link

自己复制了几个配置, 然后写了个shell更新脚本遍历了几个配置。。。

@Neilpang
Copy link
Member

@Spinestars @yanhuixie

就是考虑到有多个 conf 的情况, 可以使用 --accountconf 参数指定.

@Neilpang
Copy link
Member

但是 如果不是默认的 conf, 需要手动添加一条 crontab 并带上 --accountconf 参数, 否则不能自动renew

@baoang
Copy link

baoang commented Feb 25, 2019

哦,现在我的buypass跟letsencrypt都为同一个域名抓证书呢,我分了两台服务器,一边管一个。
以后可以放同一台服务器上?

@Neilpang
Copy link
Member

Neilpang commented Feb 25, 2019

@baoang 不行, 除非你把域名顺序调换一下. 否则会相互覆盖.
第一个 -d 域名是 证书的路径名. 如果路径相同, 会相互覆盖.

@baoang
Copy link

baoang commented Feb 25, 2019

@baoang 不行, 除非你把域名顺序调换一下. 否则会相互覆盖.
第一个 -d 域名时 证书的路径名. 如果路径相同, 会相互覆盖.

哦是这样的:
我的域名,假如说是mydomain.tld这样的,我在A服务器上走letsencrypt申请mydomain.tld,并且续期;我在B服务器上走buypass也申请mydomain.tld,并且续期(其实还没续,因为它有半年,还好多月)。

我原先没注意这个问题,就是图buypass它时间长,但它域名不泛,所以我同时还在用letsencrypt来着,结果一跑发现得分开,不然前面的东西就没了,我后来赶紧把备份搬出来拷回去……然后就分开服务器了。

后来我觉得,我还是以letsencrypt为主吧,这个你一早就在做,保险。

@Neilpang
Copy link
Member

@baoang

可以这样做:

letsencrypt:

acme.sh  --issue  -d   mycomain.com  -d www.mydomain.com  ......

buypass:

acme.sh  --server ....   --issue  -d www.mydomain.com  -d mydomain.com . .....

注意域名的顺序

@yanhuixie
Copy link

但是 如果不是默认的 conf, 需要手动添加一条 crontab 并带上 --accountconf 参数, 否则不能自动renew

多谢回复,请问您指的是像这样设置crontab么?
4 0 * * * "/root/.acme.sh"/acme.sh --accountconf "/root/.acme.sh/aaa.account.conf" --cron --home "/root/.acme.sh" > /dev/null
4 0 * * * "/root/.acme.sh"/acme.sh --accountconf "/root/.acme.sh/bbb.account.conf" --cron --home "/root/.acme.sh" > /dev/null
4 0 * * * "/root/.acme.sh"/acme.sh --accountconf "/root/.acme.sh/ccc.account.conf" --cron --home "/root/.acme.sh" > /dev/null

如果是这样的话,那么在同一个--home下面,程序是怎样知道当前conf里的key/secret是和哪个域名对应的呢?应该是我理解错了吧?

@baoang
Copy link

baoang commented Feb 26, 2019

@baoang

可以这样做:

letsencrypt:

acme.sh  --issue  -d   mycomain.com  -d www.mydomain.com  ......

buypass:

acme.sh  --server ....   --issue  -d www.mydomain.com  -d mydomain.com . .....

注意域名的顺序

哦,原来还有这招,我以前一直以为前后怎么填都一样的。

@vagile-cn
Copy link
Author

我的天。。。才发现我这已经这么多人回复了= =
希望作者早日修改哦
同时感谢作者带来这么好用的东西
方便我们日常工作

@shiheme
Copy link

shiheme commented Apr 4, 2020

想问下最终这个问题大家是怎么解决的啊?多个域名服务商的域名要怎么单独加 --accountconf,有大神提供一下具体命令和操作吗?谢谢

@Neilpang
Copy link
Member

Neilpang commented Apr 4, 2020

@shiheme 多个不同的dns 服务商可以同时指定:
https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert#3-multiple-domains-san-mode--hybrid-mode

同一个 dns 服务商只能用一个 key

@xirotech
Copy link

xirotech commented May 8, 2020

想问下最终这个问题大家是怎么解决的啊?多个域名服务商的域名要怎么单独加 --accountconf,有大神提供一下具体命令和操作吗?谢谢

我现在是分了两个目录,2条crontab , 那个accountconf 方法我不会用 或者说完全没看懂,哪位仁兄能提供范例么,怎么通过多个conf文件来为同一家域名商不同账号下的域名提供证书申请及更新?

这个问题从去年8月份关注至今 似乎毫无进展 这个问题对于个人用户可能无关紧要,就像大多数人只需要一个微信 一个支付宝一样。他们可能觉得是够用的... 但如果应用在企业生产环境 这会很糟糕

期待 @Spinestars 先生/女士 能够帮助大家提供一个有效的解决方案

@Spinestars
Copy link

想问下最终这个问题大家是怎么解决的啊?多个域名服务商的域名要怎么单独加 --accountconf,有大神提供一下具体命令和操作吗?谢谢

我现在是分了两个目录,2条crontab , 那个accountconf 方法我不会用 或者说完全没看懂,哪位仁兄能提供范例么,怎么通过多个conf文件来为同一家域名商不同账号下的域名提供证书申请及更新?

这个问题从去年8月份关注至今 似乎毫无进展 这个问题对于个人用户可能无关紧要,就像大多数人只需要一个微信 一个支付宝一样。他们可能觉得是够用的... 但如果应用在企业生产环境 这会很糟糕

期待 @Spinestars 先生/女士 能够帮助大家提供一个有效的解决方案

  • 复刻一堆 account.conf,每一个域名注册商账户对应一个。
  • 修改每一个 account.conf,确保里面的 AK 环境变量对应 dns api 所需的环境变量。
  • 进一步修改 account.conf 里的其它变量,例如 LOG_FILE,notify 的 SMTP 所需变量。
  • 计划任务里通过 --accountconf 调用 account.conf,有几个 account.conf 就写几行,确保每一行的执行时间不一样。

当某个计划任务执行的时候,如果某个域名不属于这个计划任务关联的 account.conf 对应的注册商时,会迅速的报错并跳过,因此可以忽略。

以上方法仅用于没有大批量域名的企业,并可以接受无意义的访问 dns 解析托管商的 api 接口

@mtgq
Copy link

mtgq commented Jul 17, 2021

image
我再 environment 中设置了 dnapi 但是没有发现 account.conf 文件?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants