aliyun cli

https://github.com/aliyun/aliyun-cli/blob/master/README-CN.md

使用准备:先执行 aliyun configure 会生成 ./.aliyun/config.json

查询 API 文档:https://api.aliyun.com/

-FILE 隐藏参数

当使用 aliyun cdn BatchSetCdnDomainServerCertificate 这个命令上传证书,根据官方文档,证书内容居然是整个作为字符串传参的。震惊。

根据这个 issue 发现,竟然还有一个隐藏参数。官方文档里居然一点都没提到。再次震惊。

我使用 lego 来生成证书,再配合 --run-hook 以及 --renew-hook 参数即可在生成证书后部署到阿里云。具体例子如下:

#!/usr/bin/env bash
# vim: ft=bash

set -o errexit -o nounset -o pipefail -o errtrace
(shopt -p inherit_errexit &>/dev/null) && shopt -s inherit_errexit

PUB=~/.lego/certificates/$1.crt
PRI=~/.lego/certificates/$1.key

args=(
 --region cn-hangzhou
 --DomainName "$2"
 --SSLProtocol on
 --CertType upload
 --SSLPub-FILE "$PUB"
 --SSLPri-FILE "$PRI"
)

aliyun cdn BatchSetCdnDomainServerCertificate "${args[@]}"
lego --dns alidns -d '*.xxxx.com' -d 'xxxx.com' --email '@gmail.com' \
  renew \
  --renew-hook "./cert_hook.sh _.xxxx.com cdn.xxxx.com,public.xxxx.com"