PM Extra
PM Extra
@ShirasawaSama 哦,还漏了API版本,一共改两处,一个是 `Cdn` 改 `Dcdn`,另一个是 `2018-05-10` 改 `2018-01-15` https://github.com/acmesh-official/acme.sh/blob/945b7de76fe1e4f136418e05cd80b2b3fc984ec7/deploy/ali_cdn.sh#L142-L157
@anjia0532 我认为这样是增加了复杂性,各个产品自己的接口还是需要调用,只是在调用接口的时候,传递一个证书payload,还是传递一个cas id的区别而已。既然都用acme接管证书管理了,就没必要再去用cas。
1. 既然你都手动操作部署了,那你不如手动上传证书。acme为的是无人值守,这些手动部署的需求我认为不在考虑范围内; 2. acme上传到cas的证书应该是不能通过cas来吊销的,如果需要吊销仍然是必须通过acme操作; 3. 不部署到cas,就不需要删除过期证书了; 4. 从cas下载证书这也是一个人工操作,再次强调使用acme为的是无人值守,既然你都手动操作了,不如手动上传。
@yikuo123 @iflamed It supports multiple domains by a loop. It will call the `SetCdnDomainSSLCertificate` API for each domain. https://github.com/acmesh-official/acme.sh/blob/945b7de76fe1e4f136418e05cd80b2b3fc984ec7/deploy/ali_cdn.sh#L57
@ShirasawaSama 考虑到可能有人同时需要 CDN 和 DCDN ,所以直接通过环境变量进行区分的方式可能不太合适。 而直接复制一份 `ali_dcdn.sh`,又会导致代码和 `ali_cdn.sh` 有90%以上的重复率。 我个人希望抽出一个 `libs/ali_api.sh` 这样的文件,供 `deploy/ali_cdn.sh`, `deploy/ali_dcdn.sh` 复用。甚至 `dnsapi/dns_ali.sh` 也可以重构一下,复用这个 lib 。 除了阿里,包括 awscn / 腾讯云 / 华为云 等等,也都有不止一个服务有证书需求,也都有各自的dnsapi,而其中有大量可以复用的函数。 请问 @Neilpang 对此有什么想法?
@Neilpang 问题好像和 `_findHook` 没有关系? 对于特定的一个 deployhook 或者 dnsapi ,它需要哪个服务商的API这是确定的,可以直接用硬编码的相对路径引入。 例如 `deploy/ali_cdn.sh` 我希望开头有一行 `source ../libs/ali_api.sh` 。 这样以后加入 `deploy/ali_dcdn.sh` 和 `deploy/ali_slb.sh` 等等其它服务的时候,也都是同样的方式,引入阿里的公共函数,减少重复代码。 我现在是需要您评估一下,在acme的顶层目录结构新增一个 `libs` 目录,里面存放各个云服务厂商的公共函数,例如 `libs/ali_api.sh`, `libs/tencent_api.sh`, `libs/huawei_api.sh` 这样的结构是否能接受。
@Neilpang 没太理解,你的意思是有人会通过第三方脚本来安装和更新 `acme.sh` 吗? 对于使用常规手段进行安装和更新的用户(`acme.sh --install` 和 `acme.sh --upgrade`),或者直接 `git clone` 的用户,是不会受影响的。 对于不更新脚本的用户,我们的新feature也是不会对它有影响的。 唯一可能受影响的,就是使用非官方建议的方式更新脚本,只拉取特定文件的用户。 那么这种情况下,无论目录结构怎么样,只要新增了文件,它都有可能缺失。我认为这种**超出官方支持范围**,「自作聪明」做精简的行为,就理应承担相应的风险。 或者退一步,我们不对现有的 `dnsapi/dns_ali.sh` 做重构。只对刚刚新增的 `deploy/ali_dns.sh` 和将来新增的功能引入 `libs/ali_api.sh`,这样是否可以接受呢?
> @PMExtra 除了dcdn是否还存在其他需要配置证书的场景?如oss、云建站、云函数等? 是有这些场景的,我在上面已经描述过了。
> 我个人觉得是否提供一个 `DEPLOY_ALI_SERVICES=cdn,dcdn,oss` 是否能避免出现一大堆 ali_cdn.sh, ali_dcdn.sh, ali_oss.sh 文件的出现? @ShirasawaSama 你每个服务下的域名是不一样的,而且个别服务可能需要额外的参数,这对于只使用其中一个或少数服务的人来说,会增加配置的难度。
I added a fix for showing failed resources correctly if tab is loading.