You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#!/usr/bin/env sh
# shellcheck disable=SC2034,SC2154
# Script to create certificate to Alibaba Cloud DCDN # # Docs: https://github.com/acmesh-official/acme.sh/wiki/deployhooks#33-deploy-your-certificate-to-cdn-or-dcdn-of-alibaba-cloud-aliyun # # This deployment required following variables # export Ali_Key="ALIACCESSKEY" # export Ali_Secret="ALISECRETKEY" # The credentials are shared with all the Alibaba Cloud deploy hooks and dnsapi # # To specify the DCDN domain that is different from the certificate CN, usually used for multi-domain or wildcard certificates # export DEPLOY_ALI_DCDN_DOMAIN="dcdn.example.com" # If you have multiple CDN domains using the same certificate, just # export DEPLOY_ALI_DCDN_DOMAIN="dcdn1.example.com dcdn2.example.com" # # For regular CDN, see ali_cdn deploy hook
Ali_DCDN_API="https://dcdn.aliyuncs.com/"
ali_dcdn_deploy() { _cdomain="$1" _ckey="$2" _ccert="$3" _cca="$4" _cfullchain="$5"
_debug _cdomain "$_cdomain" _debug _ckey "$_ckey" _debug _ccert "$_ccert" _debug _cca "$_cca" _debug _cfullchain "$_cfullchain"
# Load dnsapi/dns_ali.sh to reduce the duplicated codes # https://github.com/acmesh-official/acme.sh/pull/5205#issuecomment-2357867276 dnsapi_ali="$(_findHook "$_cdomain" "$_SUB_FOLDER_DNSAPI" dns_ali)" # shellcheck source=/dev/null if ! . "$dnsapi_ali"; then _err "Error loading file $dnsapi_ali. Please check your API file and try again." return 1 fi
_prepare_ali_credentials || return 1
_getdeployconf DEPLOY_ALI_DCDN_DOMAIN if [ "$DEPLOY_ALI_DCDN_DOMAIN" ]; then _savedeployconf DEPLOY_ALI_DCDN_DOMAIN "$DEPLOY_ALI_DCDN_DOMAIN" else DEPLOY_ALI_DCDN_DOMAIN="$_cdomain" fi
# read cert and key files and urlencode both _cert=$(_url_encode upper-hex <"$_cfullchain") _key=$(_url_encode upper-hex <"$_ckey")
_debug2 _cert "$_cert" _debug2 _key "$_key"
## update domain ssl config for domain in $DEPLOY_ALI_DCDN_DOMAIN; do _set_dcdn_domain_ssl_certificate_query "$domain" "$_cert" "$_key" if _ali_rest "Set DCDN domain SSL certificate for $domain" "" POST; then _info "Domain $domain certificate has been deployed successfully" fi done
return 0 }
# domain pub pri _set_dcdn_domain_ssl_certificate_query() { endpoint=$Ali_DCDN_API query='' query=$query'AccessKeyId='$Ali_Key query=$query'&Action=SetDcdnDomainSSLCertificate' query=$query'&CertType=upload' query=$query'&DomainName='$1 query=$query'&Format=json' query=$query'&SSLPri='$3 query=$query'&SSLProtocol=on' query=$query'&SSLPub='$2 query=$query'&SignatureMethod=HMAC-SHA1' query=$query"&SignatureNonce=$(_ali_nonce)" query=$query'&SignatureVersion=1.0' query=$query'&Timestamp='$(_timestamp) query=$query'&Version=2018-01-15' }
|