下面這個腳本闡釋了如何使用acme.sh借助配置、部署阿里雲API完成RSA、ECC雙證書。注意,該RAM賬戶需要授予“管理雲解析”(AliyunDNSFullAccess)的權限
#!/bin/sh
DOMAIN="example.com" # 域名
CERT_FOLDER="/etc/nginx/certs" # 證書存放的目錄,結尾不能是"/"字符
export Ali_Key="123456AbCdEfGh1234567890" # 阿里雲RAM用戶賬戶
export Ali_Secret="aBcDEfGhHiJkLmNOpQrStUvWxYz234" # 阿里雲RAM用戶密碼
#######################################################################
# 安裝acme.sh
# apt install socat # 僅stand alone模式需要
curl https://get.acme.sh | sh
alias acme.sh='/root/.acme.sh/acme.sh'
acme.sh --upgrade --auto-upgrade # 更新acme.sh
acme.sh --set-default-ca --server letsencrypt # 設置默認CA為let's Encrypt
# 申請RSA證書
acme.sh --issue -d ${DOMAIN} -d *.${DOMAIN} --dns dns_ali \
--dnssleep 30 --ocsp --days 30 --keylength 2048
# 申請ECC證書
acme.sh --issue -d ${DOMAIN} -d *.${DOMAIN} --dns dns_ali \
--dnssleep 30 --ocsp --days 30 --keylength ec-256
# 創建證書安裝所需要的目錄
mkdir ${CERT_FOLDER}
mkdir ${CERT_FOLDER}/rsa
mkdir ${CERT_FOLDER}/ecc
# 安裝RSA證書
acme.sh --install-cert -d ${DOMAIN} \
--cert-file ${CERT_FOLDER}/rsa/cert.pem \
--key-file ${CERT_FOLDER}/rsa/key.pem \
--fullchain-file ${CERT_FOLDER}/rsa/fullchain.pem \
--reloadcmd "systemctl restart nginx"
# 安裝ECC證書
acme.sh --install-cert -d ${DOMAIN} --ecc \
--cert-file ${CERT_FOLDER}/ecc/cert.pem \
--key-file ${CERT_FOLDER}/ecc/key.pem \
--fullchain-file ${CERT_FOLDER}/ecc/fullchain.pem \
--reloadcmd "systemctl restart nginx"
# 手動更新證書
#acme.sh --renew -d example.com --force
#acme.sh --renew -d example.com --force --ecc