Merge branch 'acmesh-official:master' into master

pull/5141/head
Nikolay Pronchev 2024-09-06 19:28:44 +03:00 committed by GitHub
commit 0f1e5f4fa4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
161 changed files with 2010 additions and 1391 deletions

View File

@ -29,7 +29,7 @@ jobs:
CA_ECDSA: "" CA_ECDSA: ""
CA: "" CA: ""
CA_EMAIL: "" CA_EMAIL: ""
TEST_PREFERRED_CHAIN: (STAGING) Pretend Pear X1 TEST_PREFERRED_CHAIN: (STAGING)
#- TEST_ACME_Server: "ZeroSSL.com" #- TEST_ACME_Server: "ZeroSSL.com"
# CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA" # CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA"
# CA: "ZeroSSL RSA Domain Secure Site CA" # CA: "ZeroSSL RSA Domain Secure Site CA"

View File

@ -29,12 +29,12 @@ jobs:
CA_ECDSA: "" CA_ECDSA: ""
CA: "" CA: ""
CA_EMAIL: "" CA_EMAIL: ""
TEST_PREFERRED_CHAIN: (STAGING) Pretend Pear X1 TEST_PREFERRED_CHAIN: (STAGING)
- TEST_ACME_Server: "LetsEncrypt.org_test" - TEST_ACME_Server: "LetsEncrypt.org_test"
CA_ECDSA: "" CA_ECDSA: ""
CA: "" CA: ""
CA_EMAIL: "" CA_EMAIL: ""
TEST_PREFERRED_CHAIN: (STAGING) Pretend Pear X1 TEST_PREFERRED_CHAIN: (STAGING)
ACME_USE_WGET: 1 ACME_USE_WGET: 1
#- TEST_ACME_Server: "ZeroSSL.com" #- TEST_ACME_Server: "ZeroSSL.com"
# CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA" # CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA"

View File

@ -26,11 +26,11 @@ jobs:
Linux: Linux:
strategy: strategy:
matrix: matrix:
os: ["ubuntu:latest", "debian:latest", "almalinux:latest", "fedora:latest", "centos:7", "opensuse/leap:latest", "alpine:latest", "oraclelinux:8", "kalilinux/kali", "archlinux:latest", "mageia", "gentoo/stage3"] os: ["ubuntu:latest", "debian:latest", "almalinux:latest", "fedora:latest", "opensuse/leap:latest", "alpine:latest", "oraclelinux:8", "kalilinux/kali", "archlinux:latest", "mageia", "gentoo/stage3"]
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
TEST_LOCAL: 1 TEST_LOCAL: 1
TEST_PREFERRED_CHAIN: (STAGING) Pretend Pear X1 TEST_PREFERRED_CHAIN: (STAGING)
TEST_ACME_Server: "LetsEncrypt.org_test" TEST_ACME_Server: "LetsEncrypt.org_test"
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4

View File

@ -29,7 +29,7 @@ jobs:
CA_ECDSA: "" CA_ECDSA: ""
CA: "" CA: ""
CA_EMAIL: "" CA_EMAIL: ""
TEST_PREFERRED_CHAIN: (STAGING) Pretend Pear X1 TEST_PREFERRED_CHAIN: (STAGING)
#- TEST_ACME_Server: "ZeroSSL.com" #- TEST_ACME_Server: "ZeroSSL.com"
# CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA" # CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA"
# CA: "ZeroSSL RSA Domain Secure Site CA" # CA: "ZeroSSL RSA Domain Secure Site CA"

View File

@ -29,7 +29,7 @@ jobs:
CA_ECDSA: "" CA_ECDSA: ""
CA: "" CA: ""
CA_EMAIL: "" CA_EMAIL: ""
TEST_PREFERRED_CHAIN: (STAGING) Pretend Pear X1 TEST_PREFERRED_CHAIN: (STAGING)
#- TEST_ACME_Server: "ZeroSSL.com" #- TEST_ACME_Server: "ZeroSSL.com"
# CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA" # CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA"
# CA: "ZeroSSL RSA Domain Secure Site CA" # CA: "ZeroSSL RSA Domain Secure Site CA"

View File

@ -29,12 +29,12 @@ jobs:
CA_ECDSA: "" CA_ECDSA: ""
CA: "" CA: ""
CA_EMAIL: "" CA_EMAIL: ""
TEST_PREFERRED_CHAIN: (STAGING) Pretend Pear X1 TEST_PREFERRED_CHAIN: (STAGING)
- TEST_ACME_Server: "LetsEncrypt.org_test" - TEST_ACME_Server: "LetsEncrypt.org_test"
CA_ECDSA: "" CA_ECDSA: ""
CA: "" CA: ""
CA_EMAIL: "" CA_EMAIL: ""
TEST_PREFERRED_CHAIN: (STAGING) Pretend Pear X1 TEST_PREFERRED_CHAIN: (STAGING)
ACME_USE_WGET: 1 ACME_USE_WGET: 1
#- TEST_ACME_Server: "ZeroSSL.com" #- TEST_ACME_Server: "ZeroSSL.com"
# CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA" # CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA"

View File

@ -29,12 +29,12 @@ jobs:
CA_ECDSA: "" CA_ECDSA: ""
CA: "" CA: ""
CA_EMAIL: "" CA_EMAIL: ""
TEST_PREFERRED_CHAIN: (STAGING) Pretend Pear X1 TEST_PREFERRED_CHAIN: (STAGING)
- TEST_ACME_Server: "LetsEncrypt.org_test" - TEST_ACME_Server: "LetsEncrypt.org_test"
CA_ECDSA: "" CA_ECDSA: ""
CA: "" CA: ""
CA_EMAIL: "" CA_EMAIL: ""
TEST_PREFERRED_CHAIN: (STAGING) Pretend Pear X1 TEST_PREFERRED_CHAIN: (STAGING)
ACME_USE_WGET: 1 ACME_USE_WGET: 1
#- TEST_ACME_Server: "ZeroSSL.com" #- TEST_ACME_Server: "ZeroSSL.com"
# CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA" # CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA"

View File

@ -37,7 +37,7 @@ jobs:
- name: Install tools - name: Install tools
run: sudo apt-get install -y socat run: sudo apt-get install -y socat
- name: Run Pebble - name: Run Pebble
run: cd .. && curl https://raw.githubusercontent.com/letsencrypt/pebble/master/docker-compose.yml >docker-compose.yml && docker-compose up -d run: cd .. && curl https://raw.githubusercontent.com/letsencrypt/pebble/master/docker-compose.yml >docker-compose.yml && docker compose up -d
- name: Set up Pebble - name: Set up Pebble
run: curl --request POST --data '{"ip":"10.30.50.1"}' http://localhost:8055/set-default-ipv4 run: curl --request POST --data '{"ip":"10.30.50.1"}' http://localhost:8055/set-default-ipv4
- name: Clone acmetest - name: Clone acmetest

View File

@ -29,12 +29,12 @@ jobs:
CA_ECDSA: "" CA_ECDSA: ""
CA: "" CA: ""
CA_EMAIL: "" CA_EMAIL: ""
TEST_PREFERRED_CHAIN: (STAGING) Pretend Pear X1 TEST_PREFERRED_CHAIN: (STAGING)
- TEST_ACME_Server: "LetsEncrypt.org_test" - TEST_ACME_Server: "LetsEncrypt.org_test"
CA_ECDSA: "" CA_ECDSA: ""
CA: "" CA: ""
CA_EMAIL: "" CA_EMAIL: ""
TEST_PREFERRED_CHAIN: (STAGING) Pretend Pear X1 TEST_PREFERRED_CHAIN: (STAGING)
ACME_USE_WGET: 1 ACME_USE_WGET: 1
#- TEST_ACME_Server: "ZeroSSL.com" #- TEST_ACME_Server: "ZeroSSL.com"
# CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA" # CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA"

View File

@ -29,12 +29,12 @@ jobs:
CA_ECDSA: "" CA_ECDSA: ""
CA: "" CA: ""
CA_EMAIL: "" CA_EMAIL: ""
TEST_PREFERRED_CHAIN: (STAGING) Pretend Pear X1 TEST_PREFERRED_CHAIN: (STAGING)
- TEST_ACME_Server: "LetsEncrypt.org_test" - TEST_ACME_Server: "LetsEncrypt.org_test"
CA_ECDSA: "" CA_ECDSA: ""
CA: "" CA: ""
CA_EMAIL: "" CA_EMAIL: ""
TEST_PREFERRED_CHAIN: (STAGING) Pretend Pear X1 TEST_PREFERRED_CHAIN: (STAGING)
ACME_USE_WGET: 1 ACME_USE_WGET: 1
- TEST_ACME_Server: "ZeroSSL.com" - TEST_ACME_Server: "ZeroSSL.com"
CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA" CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA"

View File

@ -29,7 +29,7 @@ jobs:
CA_ECDSA: "" CA_ECDSA: ""
CA: "" CA: ""
CA_EMAIL: "" CA_EMAIL: ""
TEST_PREFERRED_CHAIN: (STAGING) Pretend Pear X1 TEST_PREFERRED_CHAIN: (STAGING)
#- TEST_ACME_Server: "ZeroSSL.com" #- TEST_ACME_Server: "ZeroSSL.com"
# CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA" # CA_ECDSA: "ZeroSSL ECC Domain Secure Site CA"
# CA: "ZeroSSL RSA Domain Secure Site CA" # CA: "ZeroSSL RSA Domain Secure Site CA"

737
acme.sh

File diff suppressed because it is too large Load Diff

View File

@ -137,7 +137,8 @@ routeros_deploy() {
return $_err_code return $_err_code
fi fi
DEPLOY_SCRIPT_CMD="/system script add name=\"LECertDeploy-$_cdomain\" owner=$ROUTER_OS_USERNAME \ DEPLOY_SCRIPT_CMD=":do {/system script remove \"LECertDeploy-$_cdomain\" } on-error={ }; \
/system script add name=\"LECertDeploy-$_cdomain\" owner=$ROUTER_OS_USERNAME \
comment=\"generated by routeros deploy script in acme.sh\" \ comment=\"generated by routeros deploy script in acme.sh\" \
source=\"/certificate remove [ find name=$_cdomain.cer_0 ];\ source=\"/certificate remove [ find name=$_cdomain.cer_0 ];\
\n/certificate remove [ find name=$_cdomain.cer_1 ];\ \n/certificate remove [ find name=$_cdomain.cer_1 ];\
@ -146,8 +147,8 @@ source=\"/certificate remove [ find name=$_cdomain.cer_0 ];\
\n/certificate import file-name=$_cdomain.cer passphrase=\\\"\\\";\ \n/certificate import file-name=$_cdomain.cer passphrase=\\\"\\\";\
\n/certificate import file-name=$_cdomain.key passphrase=\\\"\\\";\ \n/certificate import file-name=$_cdomain.key passphrase=\\\"\\\";\
\ndelay 1;\ \ndelay 1;\
\n/file remove $_cdomain.cer;\ \n:do {/file remove $_cdomain.cer; } on-error={ }\
\n/file remove $_cdomain.key;\ \n:do {/file remove $_cdomain.key; } on-error={ }\
\ndelay 2;\ \ndelay 2;\
\n/ip service set www-ssl certificate=$_cdomain.cer_0;\ \n/ip service set www-ssl certificate=$_cdomain.cer_0;\
\n$ROUTER_OS_ADDITIONAL_SERVICES;\ \n$ROUTER_OS_ADDITIONAL_SERVICES;\

View File

@ -39,7 +39,7 @@
################################################################################ ################################################################################
# Dependencies: # Dependencies:
# - curl # - curl
# - synouser & synogroup (When available and SYNO_USE_TEMP_ADMIN is set) # - synouser & synogroup & synosetkeyvalue (Required for SYNO_USE_TEMP_ADMIN=1)
################################################################################ ################################################################################
# Return value: # Return value:
# 0 means success, otherwise error. # 0 means success, otherwise error.
@ -66,14 +66,18 @@ synology_dsm_deploy() {
_getdeployconf SYNO_DEVICE_NAME _getdeployconf SYNO_DEVICE_NAME
# Prepare to use temp admin if SYNO_USE_TEMP_ADMIN is set # Prepare to use temp admin if SYNO_USE_TEMP_ADMIN is set
_debug2 SYNO_USE_TEMP_ADMIN "$SYNO_USE_TEMP_ADMIN"
_getdeployconf SYNO_USE_TEMP_ADMIN _getdeployconf SYNO_USE_TEMP_ADMIN
_check2cleardeployconfexp SYNO_USE_TEMP_ADMIN _check2cleardeployconfexp SYNO_USE_TEMP_ADMIN
_debug2 SYNO_USE_TEMP_ADMIN "$SYNO_USE_TEMP_ADMIN" _debug2 SYNO_USE_TEMP_ADMIN "$SYNO_USE_TEMP_ADMIN"
if [ -n "$SYNO_USE_TEMP_ADMIN" ]; then if [ -n "$SYNO_USE_TEMP_ADMIN" ]; then
if ! _exists synouser || ! _exists synogroup; then if ! _exists synouser || ! _exists synogroup || ! _exists synosetkeyvalue; then
_err "Tools are missing for creating temp admin user, please set SYNO_USERNAME and SYNO_PASSWORD instead." _err "Missing required tools to creat temp admin user, please set SYNO_USERNAME and SYNO_PASSWORD instead."
_err "Notice: temp admin user authorization method only supports local deployment on DSM."
return 1
fi
if synouser --help 2>&1 | grep -q 'Permission denied'; then
_err "For creating temp admin user, the deploy script must be run as root."
return 1 return 1
fi fi
@ -169,7 +173,7 @@ synology_dsm_deploy() {
_debug3 H1 "${_H1}" _debug3 H1 "${_H1}"
fi fi
response=$(_post "method=login&account=$encoded_username&passwd=$encoded_password&api=SYNO.API.Auth&version=$api_version&enable_syno_token=yes&otp_code=$DEPRECATED_otp_code&device_name=certrenewal&device_id=$SYNO_DEVICE_ID" "$_base_url/webapi/auth.cgi?enable_syno_token=yes") response=$(_post "method=login&account=$encoded_username&passwd=$encoded_password&api=SYNO.API.Auth&version=$api_version&enable_syno_token=yes&otp_code=$DEPRECATED_otp_code&device_name=certrenewal&device_id=$SYNO_DEVICE_ID" "$_base_url/webapi/$api_path?enable_syno_token=yes")
_debug3 response "$response" _debug3 response "$response"
# ## END ## - DEPRECATED, for backward compatibility # ## END ## - DEPRECATED, for backward compatibility
# If SYNO_DEVICE_ID or SYNO_OTP_CODE is set, we treat current account enabled 2FA-OTP. # If SYNO_DEVICE_ID or SYNO_OTP_CODE is set, we treat current account enabled 2FA-OTP.
@ -184,7 +188,7 @@ synology_dsm_deploy() {
_debug SYNO_LOCAL_HOSTNAME "${SYNO_LOCAL_HOSTNAME:-}" _debug SYNO_LOCAL_HOSTNAME "${SYNO_LOCAL_HOSTNAME:-}"
if [ "$SYNO_LOCAL_HOSTNAME" != "1" ] && [ "$SYNO_LOCAL_HOSTNAME" == "$SYNO_HOSTNAME" ]; then if [ "$SYNO_LOCAL_HOSTNAME" != "1" ] && [ "$SYNO_LOCAL_HOSTNAME" == "$SYNO_HOSTNAME" ]; then
if [ "$SYNO_HOSTNAME" != "localhost" ] && [ "$SYNO_HOSTNAME" != "127.0.0.1" ]; then if [ "$SYNO_HOSTNAME" != "localhost" ] && [ "$SYNO_HOSTNAME" != "127.0.0.1" ]; then
_err "SYNO_USE_TEMP_ADMIN=1 Only support locally deployment, if you are sure that hostname $SYNO_HOSTNAME is targeting to your **current local machine**, execute 'export SYNO_LOCAL_HOSTNAME=1' then rerun." _err "SYNO_USE_TEMP_ADMIN=1 only support local deployment, though if you are sure that the hostname $SYNO_HOSTNAME is targeting to your **current local machine**, execute 'export SYNO_LOCAL_HOSTNAME=1' then rerun."
return 1 return 1
fi fi
fi fi
@ -201,24 +205,27 @@ synology_dsm_deploy() {
# shellcheck disable=SC2086 # shellcheck disable=SC2086
synogroup --member administrators $cur_admins $SYNO_USERNAME >/dev/null synogroup --member administrators $cur_admins $SYNO_USERNAME >/dev/null
else else
_err "Tool synogroup may be broken, please set SYNO_USERNAME and SYNO_PASSWORD instead." _err "The tool synogroup may be broken, please set SYNO_USERNAME and SYNO_PASSWORD instead."
return 1 return 1
fi fi
else else
_err "Unsupported synogroup tool detected, please set SYNO_USERNAME and SYNO_PASSWORD instead." _err "Unsupported synogroup tool detected, please set SYNO_USERNAME and SYNO_PASSWORD instead."
return 1 return 1
fi fi
# havig a workaround to temporary disable enforce 2FA-OTP # havig a workaround to temporary disable enforce 2FA-OTP, will restore
# it soon (after a single request), though if any accident occurs like
# unexpected interruption, this setting can be easily reverted manually.
otp_enforce_option=$(synogetkeyvalue /etc/synoinfo.conf otp_enforce_option) otp_enforce_option=$(synogetkeyvalue /etc/synoinfo.conf otp_enforce_option)
if [ -n "$otp_enforce_option" ] && [ "${otp_enforce_option:-"none"}" != "none" ]; then if [ -n "$otp_enforce_option" ] && [ "${otp_enforce_option:-"none"}" != "none" ]; then
synosetkeyvalue /etc/synoinfo.conf otp_enforce_option none synosetkeyvalue /etc/synoinfo.conf otp_enforce_option none
_info "Temporary disabled enforce 2FA-OTP to complete authentication." _info "Enforcing 2FA-OTP has been disabled to complete temp admin authentication."
_info "Notice: it will be restored soon, if not, you can restore it manually via Control Panel."
_info "previous_otp_enforce_option" "$otp_enforce_option" _info "previous_otp_enforce_option" "$otp_enforce_option"
else else
otp_enforce_option="" otp_enforce_option=""
fi fi
fi fi
response=$(_get "$_base_url/webapi/entry.cgi?api=SYNO.API.Auth&version=$api_version&method=login&format=sid&account=$encoded_username&passwd=$encoded_password&enable_syno_token=yes") response=$(_get "$_base_url/webapi/$api_path?api=SYNO.API.Auth&version=$api_version&method=login&format=sid&account=$encoded_username&passwd=$encoded_password&enable_syno_token=yes")
if [ -n "$SYNO_USE_TEMP_ADMIN" ] && [ -n "$otp_enforce_option" ]; then if [ -n "$SYNO_USE_TEMP_ADMIN" ] && [ -n "$otp_enforce_option" ]; then
synosetkeyvalue /etc/synoinfo.conf otp_enforce_option "$otp_enforce_option" synosetkeyvalue /etc/synoinfo.conf otp_enforce_option "$otp_enforce_option"
_info "Restored previous enforce 2FA-OTP option." _info "Restored previous enforce 2FA-OTP option."
@ -230,7 +237,7 @@ synology_dsm_deploy() {
error_code=$(echo "$response" | grep '"error":' | grep -o '"code":[0-9]*' | grep -o '[0-9]*') error_code=$(echo "$response" | grep '"error":' | grep -o '"code":[0-9]*' | grep -o '[0-9]*')
_debug2 error_code "$error_code" _debug2 error_code "$error_code"
# Account has 2FA-OTP enabled, since error 403 reported. # Account has 2FA-OTP enabled, since error 403 reported.
# https://global.download.synology.com/download/Document/Software/DeveloperGuide/Firmware/DSM/All/enu/Synology_DiskStation_Administration_CLI_Guide.pdf # https://global.download.synology.com/download/Document/Software/DeveloperGuide/Os/DSM/All/enu/DSM_Login_Web_API_Guide_enu.pdf
if [ "$error_code" == "403" ]; then if [ "$error_code" == "403" ]; then
if [ -z "$SYNO_DEVICE_NAME" ]; then if [ -z "$SYNO_DEVICE_NAME" ]; then
printf "Enter device name or leave empty for default (CertRenewal): " printf "Enter device name or leave empty for default (CertRenewal): "
@ -274,12 +281,16 @@ synology_dsm_deploy() {
_err "Failed to authenticate with provided 2FA-OTP code, please try again in a new terminal window." _err "Failed to authenticate with provided 2FA-OTP code, please try again in a new terminal window."
elif [ "$error_code" == "406" ]; then elif [ "$error_code" == "406" ]; then
if [ -n "$SYNO_USE_TEMP_ADMIN" ]; then if [ -n "$SYNO_USE_TEMP_ADMIN" ]; then
_err "SYNO_USE_TEMP_ADMIN=1 is not supported if enforce auth with 2FA-OTP is enabled." _err "Failed with unexcepted error, please report this by providing full log with '--debug 3'."
else else
_err "Enforce auth with 2FA-OTP enabled, please configure the user to enable 2FA-OTP to continue." _err "Enforce auth with 2FA-OTP enabled, please configure the user to enable 2FA-OTP to continue."
fi fi
elif [ "$error_code" == "400" ] || [ "$error_code" == "401" ] || [ "$error_code" == "408" ] || [ "$error_code" == "409" ] || [ "$error_code" == "410" ]; then elif [ "$error_code" == "400" ]; then
_err "Failed to authenticate with a non-existent or disabled account, or the account password is incorrect or has expired." _err "Failed to authenticate, no such account or incorrect password."
elif [ "$error_code" == "401" ]; then
_err "Failed to authenticate with a non-existent account."
elif [ "$error_code" == "408" ] || [ "$error_code" == "409" ] || [ "$error_code" == "410" ]; then
_err "Failed to authenticate, the account password has expired or must be changed."
else else
_err "Failed to authenticate with error: $error_code." _err "Failed to authenticate with error: $error_code."
fi fi
@ -293,7 +304,7 @@ synology_dsm_deploy() {
_debug SynoToken "$token" _debug SynoToken "$token"
if [ -z "$sid" ] || [ -z "$token" ]; then if [ -z "$sid" ] || [ -z "$token" ]; then
# Still can't get necessary info even got no errors, may Synology have API updated? # Still can't get necessary info even got no errors, may Synology have API updated?
_err "Unable to authenticate to $_base_url, you may report the full log to the community." _err "Unable to authenticate to $_base_url, you may report this by providing full log with '--debug 3'."
_temp_admin_cleanup "$SYNO_USE_TEMP_ADMIN" "$SYNO_USERNAME" _temp_admin_cleanup "$SYNO_USE_TEMP_ADMIN" "$SYNO_USERNAME"
return 1 return 1
fi fi
@ -331,7 +342,7 @@ synology_dsm_deploy() {
if [ "$error_code" -eq 105 ]; then if [ "$error_code" -eq 105 ]; then
_err "Current user is not administrator and does not have sufficient permission for deploying." _err "Current user is not administrator and does not have sufficient permission for deploying."
else else
_err "Failed to fetch certificate info with error: $error_code, please try again or contact Synology to learn more." _err "Failed to fetch certificate info: $error_code, please try again or contact Synology to learn more."
fi fi
_temp_admin_cleanup "$SYNO_USE_TEMP_ADMIN" "$SYNO_USERNAME" _temp_admin_cleanup "$SYNO_USE_TEMP_ADMIN" "$SYNO_USERNAME"
return 1 return 1

View File

@ -70,10 +70,10 @@ vault_deploy() {
# JSON does not allow multiline strings. # JSON does not allow multiline strings.
# So replacing new-lines with "\n" here # So replacing new-lines with "\n" here
_ckey=$(sed -z 's/\n/\\n/g' <"$2") _ckey=$(sed -e ':a' -e N -e '$ ! ba' -e 's/\n/\\n/g' <"$2")
_ccert=$(sed -z 's/\n/\\n/g' <"$3") _ccert=$(sed -e ':a' -e N -e '$ ! ba' -e 's/\n/\\n/g' <"$3")
_cca=$(sed -z 's/\n/\\n/g' <"$4") _cca=$(sed -e ':a' -e N -e '$ ! ba' -e 's/\n/\\n/g' <"$4")
_cfullchain=$(sed -z 's/\n/\\n/g' <"$5") _cfullchain=$(sed -e ':a' -e N -e '$ ! ba' -e 's/\n/\\n/g' <"$5")
export _H1="X-Vault-Token: $VAULT_TOKEN" export _H1="X-Vault-Token: $VAULT_TOKEN"

View File

@ -1,22 +1,18 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# This file name is "dns_1984hosting.sh" # shellcheck disable=SC2034
# So, here must be a method dns_1984hosting_add() dns_1984hosting_info='1984.hosting
# Which will be called by acme.sh to add the txt record to your api system. Domains: 1984.is
# returns 0 means success, otherwise error. Site: 1984.hosting
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_1984hosting
# Author: Adrian Fedoreanu Options:
# Report Bugs here: https://github.com/acmesh-official/acme.sh One984HOSTING_Username Username
# or here... https://github.com/acmesh-official/acme.sh/issues/2851 One984HOSTING_Password Password
Issues: github.com/acmesh-official/acme.sh/issues/2851
Author: Adrian Fedoreanu
'
######## Public functions ##################### ######## Public functions #####################
# Export 1984HOSTING username and password in following variables
#
# One984HOSTING_Username=username
# One984HOSTING_Password=password
#
# username/password and csrftoken/sessionid cookies are saved in ~/.acme.sh/account.conf
# Usage: dns_1984hosting_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" # Usage: dns_1984hosting_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
# Add a text record. # Add a text record.
dns_1984hosting_add() { dns_1984hosting_add() {
@ -215,8 +211,8 @@ _get_root() {
return 1 return 1
fi fi
_authget "https://1984.hosting/domains/soacheck/?zone=$h&nameserver=ns0.1984.is." _authget "https://1984.hosting/domains/zonestatus/$h/?cached=no"
if _contains "$_response" "serial" && ! _contains "$_response" "null"; then if _contains "$_response" '"ok": true'; then
_sub_domain=$(printf "%s" "$domain" | cut -d . -f 1-"$p") _sub_domain=$(printf "%s" "$domain" | cut -d . -f 1-"$p")
_domain="$h" _domain="$h"
return 0 return 0
@ -250,7 +246,6 @@ _authget() {
} }
# Truncate huge HTML response # Truncate huge HTML response
# Echo: Argument list too long
_htmlget() { _htmlget() {
export _H1="Cookie: $One984HOSTING_CSRFTOKEN_COOKIE; $One984HOSTING_SESSIONID_COOKIE" export _H1="Cookie: $One984HOSTING_CSRFTOKEN_COOKIE; $One984HOSTING_SESSIONID_COOKIE"
_response=$(_get "$1" | grep "$2") _response=$(_get "$1" | grep "$2")

View File

@ -1,18 +1,18 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# # shellcheck disable=SC2034
#Author: Wolfgang Ebner dns_acmedns_info='acme-dns Server API
#Author: Sven Neubuaer The acme-dns is a limited DNS server with RESTful API to handle ACME DNS challenges.
#Report Bugs here: https://github.com/dampfklon/acme.sh Site: github.com/joohoi/acme-dns
# Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_acmedns
# Usage: Options:
# export ACMEDNS_BASE_URL="https://auth.acme-dns.io" ACMEDNS_USERNAME Username. Optional.
# ACMEDNS_PASSWORD Password. Optional.
# You can optionally define an already existing account: ACMEDNS_SUBDOMAIN Subdomain. Optional.
# ACMEDNS_BASE_URL API endpoint. Default: "https://auth.acme-dns.io".
# export ACMEDNS_USERNAME="<username>" Issues: github.com/dampfklon/acme.sh
# export ACMEDNS_PASSWORD="<password>" Author: Wolfgang Ebner, Sven Neubuaer
# export ACMEDNS_SUBDOMAIN="<subdomain>" '
#
######## Public functions ##################### ######## Public functions #####################
#Usage: dns_acmedns_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" #Usage: dns_acmedns_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"

18
dnsapi/dns_acmeproxy.sh Normal file → Executable file
View File

@ -1,9 +1,17 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
## Acmeproxy DNS provider to be used with acmeproxy (https://github.com/mdbraber/acmeproxy) dns_acmeproxy_info='AcmeProxy Server API
## API integration by Maarten den Braber AcmeProxy can be used to as a single host in your network to request certificates through a DNS API.
## Clients can connect with the one AcmeProxy host so you do not need to store DNS API credentials on every single host.
## Report any bugs via https://github.com/mdbraber/acme.sh Site: github.com/mdbraber/acmeproxy
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_acmeproxy
Options:
ACMEPROXY_ENDPOINT API Endpoint
ACMEPROXY_USERNAME Username
ACMEPROXY_PASSWORD Password
Issues: github.com/acmesh-official/acme.sh/issues/2251
Author: Maarten den Braber
'
dns_acmeproxy_add() { dns_acmeproxy_add() {
fulldomain="${1}" fulldomain="${1}"

View File

@ -1,6 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
#ACTIVE24_Token="sdfsdfsdfljlbjkljlkjsdfoiwje" dns_active24_info='Active24.com
Site: Active24.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_active24
Options:
ACTIVE24_Token API Token
Issues: github.com/acmesh-official/acme.sh/issues/2059
Author: Milan Pála
'
ACTIVE24_Api="https://api.active24.com" ACTIVE24_Api="https://api.active24.com"

View File

@ -1,12 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# dns_ad_info='AlwaysData.com
#AD_API_KEY="sdfsdfsdfljlbjkljlkjsdfoiwje" Site: AlwaysData.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_ad
#This is the Alwaysdata api wrapper for acme.sh Options:
# AD_API_KEY API Key
#Author: Paul Koppen Issues: github.com/acmesh-official/acme.sh/pull/503
#Report Bugs here: https://github.com/wpk-/acme.sh Author: Paul Koppen
'
AD_API_URL="https://$AD_API_KEY:@api.alwaysdata.com/v1" AD_API_URL="https://$AD_API_KEY:@api.alwaysdata.com/v1"

View File

@ -1,10 +1,16 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_ali_info='AlibabaCloud.com
Domains: Aliyun.com
Site: AlibabaCloud.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_ali
Options:
Ali_Key API Key
Ali_Secret API Secret
'
Ali_API="https://alidns.aliyuncs.com/" Ali_API="https://alidns.aliyuncs.com/"
#Ali_Key="LTqIA87hOKdjevsf5"
#Ali_Secret="0p5EYueFNq501xnCPzKNbx6K51qPH2"
#Usage: dns_ali_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" #Usage: dns_ali_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
dns_ali_add() { dns_ali_add() {
fulldomain=$1 fulldomain=$1

View File

@ -1,9 +1,12 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# Anexia CloudDNS acme.sh hook dns_anx_info='Anexia.com CloudDNS
# Author: MA Site: Anexia.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_anx
#ANX_Token="xxxx" Options:
ANX_Token API Token
Issues: github.com/acmesh-official/acme.sh/issues/3238
'
ANX_API='https://engine.anexia-it.com/api/clouddns/v1' ANX_API='https://engine.anexia-it.com/api/clouddns/v1'

View File

@ -1,17 +1,14 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
################################################################################ dns_artfiles_info='ArtFiles.de
# ACME.sh 3rd party DNS API plugin for ArtFiles.de Site: ArtFiles.de
################################################################################ Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_artfiles
# Author: Martin Arndt, https://troublezone.net/ Options:
# Released: 2022-02-27 AF_API_USERNAME API Username
# Issues: https://github.com/acmesh-official/acme.sh/issues/4718 AF_API_PASSWORD API Password
################################################################################ Issues: github.com/acmesh-official/acme.sh/issues/4718
# Usage: Author: Martin Arndt <https://troublezone.net/>
# 1. export AF_API_USERNAME='api12345678' '
# 2. export AF_API_PASSWORD='apiPassword'
# 3. acme.sh --issue -d example.com --dns dns_artfiles
################################################################################
########## API configuration ################################################### ########## API configuration ###################################################

View File

@ -1,11 +1,16 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# Arvan_Token="Apikey xxxx" dns_arvan_info='ArvanCloud.ir
Site: ArvanCloud.ir
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_arvan
Options:
Arvan_Token API Token
Issues: github.com/acmesh-official/acme.sh/issues/2796
Author: Vahid Fardi
'
ARVAN_API_URL="https://napi.arvancloud.ir/cdn/4.0/domains" ARVAN_API_URL="https://napi.arvancloud.ir/cdn/4.0/domains"
# Author: Vahid Fardi
# Report Bugs here: https://github.com/Neilpang/acme.sh
#
######## Public functions ##################### ######## Public functions #####################
#Usage: dns_arvan_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" #Usage: dns_arvan_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"

View File

@ -1,9 +1,15 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# dns_aurora_info='versio.nl AuroraDNS
#AURORA_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" Domains: pcextreme.nl
# Site: versio.nl
#AURORA_Secret="sdfsdfsdfljlbjkljlkjsdfoiwje" Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_aurora
Options:
AURORA_Key API Key
AURORA_Secret API Secret
Issues: github.com/acmesh-official/acme.sh/issues/3459
Author: Jasper Zonneveld
'
AURORA_Api="https://api.auroradns.eu" AURORA_Api="https://api.auroradns.eu"

View File

@ -1,16 +1,15 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# -*- mode: sh; tab-width: 2; indent-tabs-mode: s; coding: utf-8 -*- # shellcheck disable=SC2034
dns_autodns_info='InternetX autoDNS
# This is the InternetX autoDNS xml api wrapper for acme.sh InternetX autoDNS XML API
# Author: auerswald@gmail.com Site: InternetX.com/autodns/
# Created: 2018-01-14 Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_autodns
# Options:
# export AUTODNS_USER="username" AUTODNS_USER Username
# export AUTODNS_PASSWORD="password" AUTODNS_PASSWORD Password
# export AUTODNS_CONTEXT="context" AUTODNS_CONTEXT Context
# Author: <auerswald@gmail.com>
# Usage: '
# acme.sh --issue --dns dns_autodns -d example.com
AUTODNS_API="https://gateway.autodns.com" AUTODNS_API="https://gateway.autodns.com"

View File

@ -1,13 +1,15 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_aws_info='Amazon AWS Route53 domain API
Site: docs.aws.amazon.com/route53/
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_aws
Options:
AWS_ACCESS_KEY_ID API Key ID
AWS_SECRET_ACCESS_KEY API Secret
'
# # All `_sleep` commands are included to avoid Route53 throttling, see
#AWS_ACCESS_KEY_ID="sdfsdfsdfljlbjkljlkjsdfoiwje" # https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-requests
#
#AWS_SECRET_ACCESS_KEY="xxxxxxx"
#This is the Amazon Route53 api wrapper for acme.sh
#All `_sleep` commands are included to avoid Route53 throttling, see
#https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-requests
AWS_HOST="route53.amazonaws.com" AWS_HOST="route53.amazonaws.com"
AWS_URL="https://$AWS_HOST" AWS_URL="https://$AWS_HOST"

View File

@ -1,9 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# dns_azion_info='Azion.om
#AZION_Email="" Site: Azion.com
#AZION_Password="" Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_azion
# Options:
AZION_Email Email
AZION_Password Password
Issues: github.com/acmesh-official/acme.sh/issues/3555
'
AZION_Api="https://api.azionapi.net" AZION_Api="https://api.azionapi.net"

View File

@ -1,6 +1,15 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
WIKI="https://github.com/acmesh-official/acme.sh/wiki/How-to-use-Azure-DNS" dns_azure_info='Azure
Site: Azure.microsoft.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_azure
Options:
AZUREDNS_SUBSCRIPTIONID Subscription ID
AZUREDNS_TENANTID Tenant ID
AZUREDNS_APPID App ID. App ID of the service principal
AZUREDNS_CLIENTSECRET Client Secret. Secret from creating the service principal
AZUREDNS_MANAGEDIDENTITY Use Managed Identity. Use Managed Identity assigned to a resource instead of a service principal. "true"/"false"
'
######## Public functions ##################### ######## Public functions #####################

View File

@ -1,18 +1,17 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_bookmyname_info='BookMyName.com
Site: BookMyName.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_bookmyname
Options:
BOOKMYNAME_USERNAME Username
BOOKMYNAME_PASSWORD Password
Issues: github.com/acmesh-official/acme.sh/issues/3209
Author: Neilpang
'
#Here is a sample custom api script.
#This file name is "dns_bookmyname.sh"
#So, here must be a method dns_bookmyname_add()
#Which will be called by acme.sh to add the txt record to your api system.
#returns 0 means success, otherwise error.
#
#Author: Neilpang
#Report Bugs here: https://github.com/acmesh-official/acme.sh
#
######## Public functions ##################### ######## Public functions #####################
# Please Read this guide first: https://github.com/acmesh-official/acme.sh/wiki/DNS-API-Dev-Guide
# BookMyName urls: # BookMyName urls:
# https://BOOKMYNAME_USERNAME:BOOKMYNAME_PASSWORD@www.bookmyname.com/dyndns/?hostname=_acme-challenge.domain.tld&type=txt&ttl=300&do=add&value="XXXXXXXX"' # https://BOOKMYNAME_USERNAME:BOOKMYNAME_PASSWORD@www.bookmyname.com/dyndns/?hostname=_acme-challenge.domain.tld&type=txt&ttl=300&do=add&value="XXXXXXXX"'
# https://BOOKMYNAME_USERNAME:BOOKMYNAME_PASSWORD@www.bookmyname.com/dyndns/?hostname=_acme-challenge.domain.tld&type=txt&ttl=300&do=remove&value="XXXXXXXX"' # https://BOOKMYNAME_USERNAME:BOOKMYNAME_PASSWORD@www.bookmyname.com/dyndns/?hostname=_acme-challenge.domain.tld&type=txt&ttl=300&do=remove&value="XXXXXXXX"'

View File

@ -1,16 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
## Will be called by acme.sh to add the TXT record via the Bunny DNS API. dns_bunny_info='Bunny.net
## returns 0 means success, otherwise error. Site: Bunny.net/dns/
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_bunny
## Author: nosilver4u <nosilver4u at ewww.io> Options:
## GitHub: https://github.com/nosilver4u/acme.sh BUNNY_API_KEY API Key
Issues: github.com/acmesh-official/acme.sh/issues/4296
## Author: <nosilver4u@ewww.io>
## Environment Variables Required: '
##
## BUNNY_API_KEY="75310dc4-ca77-9ac3-9a19-f6355db573b49ce92ae1-2655-3ebd-61ac-3a3ae34834cc"
##
##################### Public functions ##################### ##################### Public functions #####################

View File

@ -1,13 +1,16 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# dns_cf_info='CloudFlare
#CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" Site: CloudFlare.com
# Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_cf
#CF_Email="xxxx@sss.com" Options:
CF_Key API Key
#CF_Token="xxxx" CF_Email Your account email
#CF_Account_ID="xxxx" OptionsAlt:
#CF_Zone_ID="xxxx" CF_Token API Token
CF_Account_ID Account ID
CF_Zone_ID Zone ID. Optional.
'
CF_Api="https://api.cloudflare.com/client/v4" CF_Api="https://api.cloudflare.com/client/v4"

View File

@ -1,10 +1,15 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# Author: Radek Sprta <sprta@vshosting.cz> dns_clouddns_info='vshosting.cz CloudDNS
Site: github.com/vshosting/clouddns
#CLOUDDNS_EMAIL=XXXXX Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_clouddns
#CLOUDDNS_PASSWORD="YYYYYYYYY" Options:
#CLOUDDNS_CLIENT_ID=XXXXX CLOUDDNS_EMAIL Email
CLOUDDNS_PASSWORD Password
CLOUDDNS_CLIENT_ID Client ID
Issues: github.com/acmesh-official/acme.sh/issues/2699
Author: Radek Sprta <sprta@vshosting.cz>
'
CLOUDDNS_API='https://admin.vshosting.cloud/clouddns' CLOUDDNS_API='https://admin.vshosting.cloud/clouddns'
CLOUDDNS_LOGIN_API='https://admin.vshosting.cloud/api/public/auth/login' CLOUDDNS_LOGIN_API='https://admin.vshosting.cloud/api/public/auth/login'

View File

@ -1,12 +1,15 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_cloudns_info='ClouDNS.net
Site: ClouDNS.net
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_cloudns
Options:
CLOUDNS_AUTH_ID Regular auth ID
CLOUDNS_SUB_AUTH_ID Sub auth ID
CLOUDNS_AUTH_PASSWORD Auth Password
Author: Boyan Peychev <boyan@cloudns.net>
'
# Author: Boyan Peychev <boyan at cloudns dot net>
# Repository: https://github.com/ClouDNS/acme.sh/
# Editor: I Komang Suryadana
#CLOUDNS_AUTH_ID=XXXXX
#CLOUDNS_SUB_AUTH_ID=XXXXX
#CLOUDNS_AUTH_PASSWORD="YYYYYYYYY"
CLOUDNS_API="https://api.cloudns.net" CLOUDNS_API="https://api.cloudns.net"
DOMAIN_TYPE= DOMAIN_TYPE=
DOMAIN_MASTER= DOMAIN_MASTER=

View File

@ -1,7 +1,14 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# DNS API for acme.sh for Core-Networks (https://beta.api.core-networks.de/doc/). dns_cn_info='Core-Networks.de
# created by 5ll and francis Site: beta.api.Core-Networks.de/doc/
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_cn
Options:
CN_User User
CN_Password Password
Issues: github.com/acmesh-official/acme.sh/issues/2142
Author: 5ll, francis
'
CN_API="https://beta.api.core-networks.de" CN_API="https://beta.api.core-networks.de"

View File

@ -1,4 +1,15 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_conoha_info='ConoHa.jp
Domains: ConoHa.io
Site: ConoHa.jp
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_conoha
Options:
CONOHA_Username Username
CONOHA_Password Password
CONOHA_TenantId TenantId
CONOHA_IdentityServiceApi Identity Service API. E.g. "https://identity.xxxx.conoha.io/v2.0"
'
CONOHA_DNS_EP_PREFIX_REGEXP="https://dns-service\." CONOHA_DNS_EP_PREFIX_REGEXP="https://dns-service\."

View File

@ -1,10 +1,16 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# Author: Wout Decre <wout@canodus.be> dns_constellix_info='Constellix.com
Site: Constellix.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_constellix
Options:
CONSTELLIX_Key API Key
CONSTELLIX_Secret API Secret
Issues: github.com/acmesh-official/acme.sh/issues/2724
Author: Wout Decre <wout@canodus.be>
'
CONSTELLIX_Api="https://api.dns.constellix.com/v1" CONSTELLIX_Api="https://api.dns.constellix.com/v1"
#CONSTELLIX_Key="XXX"
#CONSTELLIX_Secret="XXX"
######## Public functions ##################### ######## Public functions #####################

View File

@ -1,18 +1,18 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# # shellcheck disable=SC2034
#Author: Bjarne Saltbaek dns_cpanel_info='cPanel Server API
#Report Bugs here: https://github.com/acmesh-official/acme.sh/issues/3732 Manage DNS via cPanel Dashboard.
# Site: cPanel.net
# Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_cpanel
Options:
cPanel_Username Username
cPanel_Apitoken API Token
cPanel_Hostname Server URL. E.g. "https://hostname:port"
Issues: github.com/acmesh-official/acme.sh/issues/3732
Author: Bjarne Saltbaek
'
######## Public functions ##################### ######## Public functions #####################
#
# Export CPANEL username,api token and hostname in the following variables
#
# cPanel_Username=username
# cPanel_Apitoken=apitoken
# cPanel_Hostname=hostname
#
# Usage: add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
# Used to add txt record # Used to add txt record
dns_cpanel_add() { dns_cpanel_add() {

View File

@ -1,9 +1,15 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
#Script to use with curanet.dk, scannet.dk, wannafind.dk, dandomain.dk DNS management. dns_curanet_info='Curanet.dk
#Requires api credentials with scope: dns Domains: scannet.dk wannafind.dk dandomain.dk
#Author: Peter L. Hansen <peter@r12.dk> Site: Curanet.dk
#Version 1.0 Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_curanet
Options:
CURANET_AUTHCLIENTID Auth ClientID. Requires scope dns
CURANET_AUTHSECRET Auth Secret
Issues: github.com/acmesh-official/acme.sh/issues/3933
Author: Peter L. Hansen <peter@r12.dk>
'
CURANET_REST_URL="https://api.curanet.dk/dns/v1/Domains" CURANET_REST_URL="https://api.curanet.dk/dns/v1/Domains"
CURANET_AUTH_URL="https://apiauth.dk.team.blue/auth/realms/Curanet/protocol/openid-connect/token" CURANET_AUTH_URL="https://apiauth.dk.team.blue/auth/realms/Curanet/protocol/openid-connect/token"

View File

@ -1,21 +1,15 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
######## dns_cyon_info='cyon.ch
# Custom cyon.ch DNS API for use with [acme.sh](https://github.com/acmesh-official/acme.sh) Site: cyon.ch
# Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_cyon
# Usage: acme.sh --issue --dns dns_cyon -d www.domain.com Options:
# CY_Username Username
# Dependencies: CY_Password API Token
# ------------- CY_OTP_Secret OTP token. Only required if using 2FA
# - oathtool (When using 2 Factor Authentication) Issues: github.com/noplanman/cyon-api/issues
# Author: Armando Lüscher <armando@noplanman.ch>
# Issues: '
# -------
# Any issues / questions / suggestions can be posted here:
# https://github.com/noplanman/cyon-api/issues
#
# Author: Armando Lüscher <armando@noplanman.ch>
########
dns_cyon_add() { dns_cyon_add() {
_cyon_load_credentials && _cyon_load_credentials &&

View File

@ -1,31 +1,14 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# -*- mode: sh; tab-width: 2; indent-tabs-mode: s; coding: utf-8 -*- # shellcheck disable=SC2034
# vim: et ts=2 sw=2 dns_da_info='DirectAdmin Server API
# Site: DirectAdmin.com/api.php
# DirectAdmin 1.41.0 API Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_da
# The DirectAdmin interface has it's own Let's encrypt functionality, but this Options:
# script can be used to generate certificates for names which are not hosted on DA_Api API Server URL. E.g. "https://remoteUser:remotePassword@da.domain.tld:8443"
# DirectAdmin DA_Api_Insecure Insecure TLS. 0: check for cert validity, 1: always accept
# Issues: github.com/TigerP/acme.sh/issues
# User must provide login data and URL to DirectAdmin incl. port. '
# You can create login key, by using the Login Keys function
# ( https://da.example.com:8443/CMD_LOGIN_KEYS ), which only has access to
# - CMD_API_DNS_CONTROL
# - CMD_API_SHOW_DOMAINS
#
# See also https://www.directadmin.com/api.php and
# https://www.directadmin.com/features.php?id=1298
#
# Report bugs to https://github.com/TigerP/acme.sh/issues
#
# Values to export:
# export DA_Api="https://remoteUser:remotePassword@da.example.com:8443"
# export DA_Api_Insecure=1
#
# Set DA_Api_Insecure to 1 for insecure and 0 for secure -> difference is
# whether ssl cert is checked for validity (0) or whether it is just accepted
# (1)
#
######## Public functions ##################### ######## Public functions #####################
# Usage: dns_myapi_add _acme-challenge.www.example.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" # Usage: dns_myapi_add _acme-challenge.www.example.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"

View File

@ -1,16 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
#Created by RaidenII, to use DuckDNS's API to add/remove text records dns_ddnss_info='DDNSS.de
#modified by helbgd @ 03/13/2018 to support ddnss.de Site: DDNSS.de
#modified by mod242 @ 04/24/2018 to support different ddnss domains Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_ddnss
#Please note: the Wildcard Feature must be turned on for the Host record Options:
#and the checkbox for TXT needs to be enabled DDNSS_Token API Token
Issues: github.com/acmesh-official/acme.sh/issues/2230
# Pass credentials before "acme.sh --issue --dns dns_ddnss ..." Author: RaidenII, helbgd, mod242
# -- '
# export DDNSS_Token="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
# --
#
DDNSS_DNS_API="https://ddnss.de/upd.php" DDNSS_DNS_API="https://ddnss.de/upd.php"

View File

@ -1,11 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# # shellcheck disable=SC2034
# deSEC.io Domain API dns_desec_info='deSEC.io
# Site: desec.readthedocs.io/en/latest/
# Author: Zheng Qian Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_desec
# Options:
# deSEC API doc DDNSS_Token API Token
# https://desec.readthedocs.io/en/latest/ Issues: github.com/acmesh-official/acme.sh/issues/2180
Author: Zheng Qian
'
REST_API="https://desec.io/api/v1/domains" REST_API="https://desec.io/api/v1/domains"

View File

@ -1,18 +1,15 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
######################################################################## dns_df_info='DynDnsFree.de
# https://dyndnsfree.de hook script for acme.sh Domains: dynup.de
# Site: DynDnsFree.de
# Environment variables: Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_df
# Options:
# - $DF_user (your dyndnsfree.de username) DF_user Username
# - $DF_password (your dyndnsfree.de password) DF_password Password
# Issues: github.com/acmesh-official/acme.sh/issues/2897
# Author: Thilo Gass <thilo.gass@gmail.com> Author: Thilo Gass <thilo.gass@gmail.com>
# Git repo: https://github.com/ThiloGa/acme.sh '
#-- dns_df_add() - Add TXT record --------------------------------------
# Usage: dns_df_add _acme-challenge.subdomain.domain.com "XyZ123..."
dyndnsfree_api="https://dynup.de/acme.php" dyndnsfree_api="https://dynup.de/acme.php"

View File

@ -1,16 +1,12 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
## Will be called by acme.sh to add the txt record to your api system. dns_dgon_info='DigitalOcean.com
## returns 0 means success, otherwise error. Site: DigitalOcean.com/help/api/
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_dgon
## Author: thewer <github at thewer.com> Options:
## GitHub: https://github.com/gitwer/acme.sh DO_API_KEY API Key
Author: <github@thewer.com>
## '
## Environment Variables Required:
##
## DO_API_KEY="75310dc4ca779ac39a19f6355db573b49ce92ae126553ebd61ac3a3ae34834cc"
##
##################### Public functions ##################### ##################### Public functions #####################

View File

@ -1,13 +1,16 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_dnsexit_info='DNSExit.com
Site: DNSExit.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_dnsexit
Options:
DNSEXIT_API_KEY API Key
DNSEXIT_AUTH_USER Username
DNSEXIT_AUTH_PASS Password
Issues: github.com/acmesh-official/acme.sh/issues/4719
Author: Samuel Jimenez
'
#use dns-01 at DNSExit.com
#Author: Samuel Jimenez
#Report Bugs here: https://github.com/acmesh-official/acme.sh
#DNSEXIT_API_KEY=ABCDEFGHIJ0123456789abcdefghij
#DNSEXIT_AUTH_USER=login@email.address
#DNSEXIT_AUTH_PASS=aStrongPassword
DNSEXIT_API_URL="https://api.dnsexit.com/dns/" DNSEXIT_API_URL="https://api.dnsexit.com/dns/"
DNSEXIT_HOSTS_URL="https://update.dnsexit.com/ipupdate/hosts.jsp" DNSEXIT_HOSTS_URL="https://update.dnsexit.com/ipupdate/hosts.jsp"

View File

@ -1,15 +1,14 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# dnsHome.de API for acme.sh dns_dnshome_info='dnsHome.de
# Site: dnsHome.de
# This Script adds the necessary TXT record to a Subdomain Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_dnshome
# Options:
# Author dnsHome.de (https://github.com/dnsHome-de) DNSHOME_Subdomain Subdomain
# DNSHOME_SubdomainPassword Subdomain Password
# Report Bugs to https://github.com/acmesh-official/acme.sh/issues/3819 Issues: github.com/acmesh-official/acme.sh/issues/3819
# Author: dnsHome.de https://github.com/dnsHome-de
# export DNSHOME_Subdomain="" '
# export DNSHOME_SubdomainPassword=""
# Usage: add subdomain.ddnsdomain.tld "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" # Usage: add subdomain.ddnsdomain.tld "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
# Used to add txt record # Used to add txt record

View File

@ -1,12 +1,12 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# DNSimple domain api dns_dnsimple_info='DNSimple.com
# https://github.com/pho3nixf1re/acme.sh/issues Site: DNSimple.com
# Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_dnsimple
# This is your oauth token which can be acquired on the account page. Please Options:
# note that this must be an _account_ token and not a _user_ token. DNSimple_OAUTH_TOKEN OAuth Token
# https://dnsimple.com/a/<your account id>/account/access_tokens Issues: github.com/pho3nixf1re/acme.sh/issues
# DNSimple_OAUTH_TOKEN="sdfsdfsdfljlbjkljlkjsdfoiwje" '
DNSimple_API="https://api.dnsimple.com/v2" DNSimple_API="https://api.dnsimple.com/v2"

View File

@ -1,12 +1,15 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_dnsservices_info='DNS.Services
Site: DNS.Services
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_dnsservices
Options:
DnsServices_Username Username
DnsServices_Password Password
Issues: github.com/acmesh-official/acme.sh/issues/4152
Author: Bjarke Bruun <bbruun@gmail.com>
'
#This file name is "dns_dnsservices.sh"
#Script for Danish DNS registra and DNS hosting provider https://dns.services
#Author: Bjarke Bruun <bbruun@gmail.com>
#Report Bugs here: https://github.com/acmesh-official/acme.sh/issues/4152
# Global variable to connect to the DNS.Services API
DNSServices_API=https://dns.services/api DNSServices_API=https://dns.services/api
######## Public functions ##################### ######## Public functions #####################

View File

@ -1,12 +1,15 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# Official Let's Encrypt API for do.de / Domain-Offensive dns_doapi_info='Domain-Offensive do.de
# Official LetsEncrypt API for do.de / Domain-Offensive.
# This is different from the dns_do adapter, because dns_do is only usable for enterprise customers This is different from the dns_do adapter, because dns_do is only usable for enterprise customers.
# This API is also available to private customers/individuals This API is also available to private customers/individuals.
# Site: do.de
# Provide the required LetsEncrypt token like this: Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_doapi
# DO_LETOKEN="FmD408PdqT1E269gUK57" Options:
DO_LETOKEN LetsEncrypt Token
Issues: github.com/acmesh-official/acme.sh/issues/2057
'
DO_API="https://www.do.de/api/letsencrypt" DO_API="https://www.do.de/api/letsencrypt"

View File

@ -1,4 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_domeneshop_info='DomeneShop.no
Site: DomeneShop.no
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_domeneshop
Options:
DOMENESHOP_Token Token
DOMENESHOP_Secret Secret
Issues: github.com/acmesh-official/acme.sh/issues/2457
'
DOMENESHOP_Api_Endpoint="https://api.domeneshop.no/v0" DOMENESHOP_Api_Endpoint="https://api.domeneshop.no/v0"

View File

@ -1,10 +1,12 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# Dnspod.cn Domain api dns_dp_info='DNSPod.cn
# Site: DNSPod.cn
#DP_Id="1234" Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_dp
# Options:
#DP_Key="sADDsdasdgdsf" DP_Id Id
DP_Key Key
'
REST_API="https://dnsapi.cn" REST_API="https://dnsapi.cn"

View File

@ -1,10 +1,12 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# Dnspod.com Domain api dns_dpi_info='DNSPod.com
# Site: DNSPod.com
#DPI_Id="1234" Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_dpi
# Options:
#DPI_Key="sADDsdasdgdsf" DPI_Id Id
DPI_Key Key
'
REST_API="https://api.dnspod.com" REST_API="https://api.dnspod.com"

View File

@ -1,10 +1,14 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_dreamhost_info='DreamHost.com
Site: DreamHost.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_dreamhost
Options:
DH_API_KEY API Key
Issues: github.com/RhinoLance/acme.sh
Author: RhinoLance
'
#Author: RhinoLance
#Report Bugs here: https://github.com/RhinoLance/acme.sh
#
#define the api endpoint
DH_API_ENDPOINT="https://api.dreamhost.com/" DH_API_ENDPOINT="https://api.dreamhost.com/"
querystring="" querystring=""

View File

@ -1,14 +1,12 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
#Created by RaidenII, to use DuckDNS's API to add/remove text records dns_duckdns_info='DuckDNS.org
#06/27/2017 Site: www.DuckDNS.org
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_duckdns
# Pass credentials before "acme.sh --issue --dns dns_duckdns ..." Options:
# -- DuckDNS_Token API Token
# export DuckDNS_Token="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" Author: RaidenII
# -- '
#
# Due to the fact that DuckDNS uses StartSSL as cert provider, --insecure may need to be used with acme.sh
DuckDNS_API="https://www.duckdns.org/update" DuckDNS_API="https://www.duckdns.org/update"

View File

@ -1,7 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
#DD_API_User="xxxxx" dns_durabledns_info='DurableDNS.com
#DD_API_Key="xxxxxx" Site: DurableDNS.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_durabledns
Options:
DD_API_User API User
DD_API_Key API Key
Issues: github.com/acmesh-official/acme.sh/issues/2281
'
_DD_BASE="https://durabledns.com/services/dns" _DD_BASE="https://durabledns.com/services/dns"

View File

@ -1,10 +1,16 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# # shellcheck disable=SC2034
# Dyn.com Domain API dns_dyn_info='Dyn.com
# Domains: dynect.net
# Author: Gerd Naschenweng Site: Dyn.com
# https://github.com/magicdude4eva Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_dyn
# Options:
DYN_Customer Customer
DYN_Username API Username
DYN_Password Secret
Author: Gerd Naschenweng <https://github.com/magicdude4eva>
'
# Dyn Managed DNS API # Dyn Managed DNS API
# https://help.dyn.com/dns-api-knowledge-base/ # https://help.dyn.com/dns-api-knowledge-base/
# #
@ -20,13 +26,6 @@
# ZoneRemoveNode # ZoneRemoveNode
# ZonePublish # ZonePublish
# -- # --
#
# Pass credentials before "acme.sh --issue --dns dns_dyn ..."
# --
# export DYN_Customer="customer"
# export DYN_Username="apiuser"
# export DYN_Password="secret"
# --
DYN_API="https://api.dynect.net/REST" DYN_API="https://api.dynect.net/REST"

View File

@ -1,20 +1,21 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_dynu_info='Dynu.com
Site: Dynu.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_dynu
Options:
Dynu_ClientId Client ID
Dynu_Secret Secret
Issues: github.com/shar0119/acme.sh
Author: Dynu Systems Inc
'
#Client ID
#Dynu_ClientId="0b71cae7-a099-4f6b-8ddf-94571cdb760d"
#
#Secret
#Dynu_Secret="aCUEY4BDCV45KI8CSIC3sp2LKQ9"
#
#Token #Token
Dynu_Token="" Dynu_Token=""
# #
#Endpoint #Endpoint
Dynu_EndPoint="https://api.dynu.com/v2" Dynu_EndPoint="https://api.dynu.com/v2"
#
#Author: Dynu Systems, Inc.
#Report Bugs here: https://github.com/shar0119/acme.sh
#
######## Public functions ##################### ######## Public functions #####################
#Usage: add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" #Usage: add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"

View File

@ -1,8 +1,15 @@
#!/usr/bin/env sh #!/usr/bin/env sh
#Author StefanAbl # shellcheck disable=SC2034
#Usage specify a private keyfile to use with dynv6 'export KEY="path/to/keyfile"' dns_dynv6_info='DynV6.com
#or use the HTTP REST API by by specifying a token 'export DYNV6_TOKEN="value" Site: DynV6.com
#if no keyfile is specified, you will be asked if you want to create one in /home/$USER/.ssh/dynv6 and /home/$USER/.ssh/dynv6.pub Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_dynv6
Options:
DYNV6_TOKEN REST API token. Get from https://DynV6.com/keys
OptionsAlt:
KEY Path to SSH private key file. E.g. "/root/.ssh/dynv6"
Issues: github.com/acmesh-official/acme.sh/issues/2702
Author: StefanAbl
'
dynv6_api="https://dynv6.com/api/v2" dynv6_api="https://dynv6.com/api/v2"
######## Public functions ##################### ######## Public functions #####################

View File

@ -1,14 +1,17 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_easydns_info='easyDNS.net
Site: easyDNS.net
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_easydns
Options:
EASYDNS_Token API Token
EASYDNS_Key API Key
Issues: github.com/acmesh-official/acme.sh/issues/2647
Author: Neilpang, wurzelpanzer <wurzelpanzer@maximolider.net>
'
#######################################################
#
# easyDNS REST API for acme.sh by Neilpang based on dns_cf.sh
#
# API Documentation: https://sandbox.rest.easydns.net:3001/ # API Documentation: https://sandbox.rest.easydns.net:3001/
#
# Author: wurzelpanzer [wurzelpanzer@maximolider.net]
# Report Bugs here: https://github.com/acmesh-official/acme.sh/issues/2647
#
#################### Public functions ################# #################### Public functions #################
#EASYDNS_Key="xxxxxxxxxxxxxxxxxxxxxxxx" #EASYDNS_Key="xxxxxxxxxxxxxxxxxxxxxxxx"

View File

@ -1,4 +1,15 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_edgedns_info='Akamai.com Edge DNS
Site: techdocs.Akamai.com/edge-dns/reference/edge-dns-api
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_edgedns
Options: Specify individual credentials
AKAMAI_HOST Host
AKAMAI_ACCESS_TOKEN Access token
AKAMAI_CLIENT_TOKEN Client token
AKAMAI_CLIENT_SECRET Client secret
Issues: github.com/acmesh-official/acme.sh/issues/3157
'
# Akamai Edge DNS v2 API # Akamai Edge DNS v2 API
# User must provide Open Edgegrid API credentials to the EdgeDNS installation. The remote user in EdgeDNS must have CRUD access to # User must provide Open Edgegrid API credentials to the EdgeDNS installation. The remote user in EdgeDNS must have CRUD access to
@ -6,18 +17,10 @@
# Report bugs to https://control.akamai.com/apps/support-ui/#/contact-support # Report bugs to https://control.akamai.com/apps/support-ui/#/contact-support
# Values to export:
# --EITHER--
# *** TBD. NOT IMPLEMENTED YET *** # *** TBD. NOT IMPLEMENTED YET ***
# specify Edgegrid credentials file and section # Specify Edgegrid credentials file and section.
# AKAMAI_EDGERC=<full file path> # AKAMAI_EDGERC Edge RC. Full file path
# AKAMAI_EDGERC_SECTION="default" # AKAMAI_EDGERC_SECTION Edge RC Section. E.g. "default"
## --OR--
# specify indiviual credentials
# export AKAMAI_HOST = <host>
# export AKAMAI_ACCESS_TOKEN = <access token>
# export AKAMAI_CLIENT_TOKEN = <client token>
# export AKAMAI_CLIENT_SECRET = <client secret>
ACME_EDGEDNS_VERSION="0.1.0" ACME_EDGEDNS_VERSION="0.1.0"

View File

@ -1,18 +1,14 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
#This is the euserv.eu api wrapper for acme.sh dns_euserv_info='EUserv.com
# Domains: EUserv.eu
#Author: Michael Brueckner Site: EUserv.com
#Report Bugs: https://www.github.com/initit/acme.sh or mbr@initit.de Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_euserv
Options:
# EUSERV_Username Username
#EUSERV_Username="username" EUSERV_Password Password
# Author: Michael Brueckner
#EUSERV_Password="password" '
#
# Dependencies:
# -------------
# - none -
EUSERV_Api="https://api.euserv.net" EUSERV_Api="https://api.euserv.net"

View File

@ -1,4 +1,12 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_exoscale_info='Exoscale.com
Site: Exoscale.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_exoscale
Options:
EXOSCALE_API_KEY API Key
EXOSCALE_SECRET_KEY API Secret key
'
EXOSCALE_API=https://api.exoscale.com/dns/v1 EXOSCALE_API=https://api.exoscale.com/dns/v1

View File

@ -1,6 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
#Author: Timur Umarov <inbox@tumarov.com> dns_fornex_info='Fornex.com
Site: Fornex.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_fornex
Options:
FORNEX_API_KEY API Key
Issues: github.com/acmesh-official/acme.sh/issues/3998
Author: Timur Umarov <inbox@tumarov.com>
'
FORNEX_API_URL="https://fornex.com/api/dns/v0.1" FORNEX_API_URL="https://fornex.com/api/dns/v0.1"

View File

@ -1,14 +1,15 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_freedns_info='FreeDNS
Site: FreeDNS.afraid.org
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_freedns
Options:
FREEDNS_User Username
FREEDNS_Password Password
Issues: github.com/acmesh-official/acme.sh/issues/2305
Author: David Kerr <https://github.com/dkerr64>
'
#This file name is "dns_freedns.sh"
#So, here must be a method dns_freedns_add()
#Which will be called by acme.sh to add the txt record to your api system.
#returns 0 means success, otherwise error.
#
#Author: David Kerr
#Report Bugs here: https://github.com/dkerr64/acme.sh
#or here... https://github.com/acmesh-official/acme.sh/issues/2305
#
######## Public functions ##################### ######## Public functions #####################
# Export FreeDNS userid and password in following variables... # Export FreeDNS userid and password in following variables...

View File

@ -1,16 +1,19 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_gandi_livedns_info='Gandi.net LiveDNS
Site: Gandi.net/domain/dns
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_gandi_livedns
Options:
GANDI_LIVEDNS_KEY API Key
Issues: github.com/fcrozat/acme.sh
Author: Frédéric Crozat <fcrozat@suse.com>, Dominik Röttsches <drott@google.com>
'
# Gandi LiveDNS v5 API # Gandi LiveDNS v5 API
# https://api.gandi.net/docs/livedns/ # https://api.gandi.net/docs/livedns/
# https://api.gandi.net/docs/authentication/ for token + apikey (deprecated) authentication # https://api.gandi.net/docs/authentication/ for token + apikey (deprecated) authentication
# currently under beta # currently under beta
#
# Requires GANDI API KEY set in GANDI_LIVEDNS_KEY set as environment variable
#
#Author: Frédéric Crozat <fcrozat@suse.com>
# Dominik Röttsches <drott@google.com>
#Report Bugs here: https://github.com/fcrozat/acme.sh
#
######## Public functions ##################### ######## Public functions #####################
GANDI_LIVEDNS_API="https://api.gandi.net/v5/livedns" GANDI_LIVEDNS_API="https://api.gandi.net/v5/livedns"

View File

@ -1,6 +1,12 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# Author: Janos Lenart <janos@lenart.io> dns_gcloud_info='Google Cloud DNS
Site: Cloud.Google.com/dns
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_gcloud
Options:
CLOUDSDK_ACTIVE_CONFIG_NAME Active config name. E.g. "default"
Author: Janos Lenart <janos@lenart.io>
'
######## Public functions ##################### ######## Public functions #####################

View File

@ -1,8 +1,12 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# dns_gcore_info='Gcore.com
#GCORE_Key='773$7b7adaf2a2b32bfb1b83787b4ff32a67eb178e3ada1af733e47b1411f2461f7f4fa7ed7138e2772a46124377bad7384b3bb8d87748f87b3f23db4b8bbe41b2bb' Site: Gcore.com
# Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_gcore
Options:
GCORE_Key API Key
Issues: github.com/acmesh-official/acme.sh/issues/4460
'
GCORE_Api="https://api.gcore.com/dns/v2" GCORE_Api="https://api.gcore.com/dns/v2"
GCORE_Doc="https://api.gcore.com/docs/dns" GCORE_Doc="https://api.gcore.com/docs/dns"

View File

@ -1,12 +1,12 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
#Godaddy domain api dns_gd_info='GoDaddy.com
# Get API key and secret from https://developer.godaddy.com/ Site: GoDaddy.com
# Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_gd
# GD_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" Options:
# GD_Secret="asdfsdfsfsdfsdfdfsdf" GD_Key API Key
# GD_Secret API Secret
# Ex.: acme.sh --issue --staging --dns dns_gd -d "*.s.example.com" -d "s.example.com" '
GD_Api="https://api.godaddy.com/v1" GD_Api="https://api.godaddy.com/v1"

View File

@ -1,12 +1,12 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
######################################################################## dns_geoscaling_info='GeoScaling.com
# Geoscaling hook script for acme.sh Site: GeoScaling.com
# Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_geoscaling
# Environment variables: Options:
# GEOSCALING_Username Username. This is usually NOT an email address
# - $GEOSCALING_Username (your Geoscaling username - this is usually NOT an amail address) GEOSCALING_Password Password
# - $GEOSCALING_Password (your Geoscaling password) '
#-- dns_geoscaling_add() - Add TXT record -------------------------------------- #-- dns_geoscaling_add() - Add TXT record --------------------------------------
# Usage: dns_geoscaling_add _acme-challenge.subdomain.domain.com "XyZ123..." # Usage: dns_geoscaling_add _acme-challenge.subdomain.domain.com "XyZ123..."

View File

@ -1,10 +1,15 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_googledomains_info='Google Domains
Site: Domains.Google.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_googledomains
Options:
GOOGLEDOMAINS_ACCESS_TOKEN API Access Token
GOOGLEDOMAINS_ZONE Zone
Issues: github.com/acmesh-official/acme.sh/issues/4545
Author: Alex Leigh <leigh@alexleigh.me>
'
# Author: Alex Leigh <leigh at alexleigh dot me>
# Created: 2023-03-02
#GOOGLEDOMAINS_ACCESS_TOKEN="xxxx"
#GOOGLEDOMAINS_ZONE="xxxx"
GOOGLEDOMAINS_API="https://acmedns.googleapis.com/v1/acmeChallengeSets" GOOGLEDOMAINS_API="https://acmedns.googleapis.com/v1/acmeChallengeSets"
######## Public functions ######## ######## Public functions ########

View File

@ -1,15 +1,14 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
######################################################################## dns_he_info='Hurricane Electric HE.net
# Hurricane Electric hook script for acme.sh Site: dns.he.net
# Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_he
# Environment variables: Options:
# HE_Username Username
# - $HE_Username (your dns.he.net username) HE_Password Password
# - $HE_Password (your dns.he.net password) Issues: github.com/angel333/acme.sh/issues/
# Author: Ondrej Simek <me@ondrejsimek.com>
# Author: Ondrej Simek <me@ondrejsimek.com> '
# Git repo: https://github.com/angel333/acme.sh
#-- dns_he_add() - Add TXT record -------------------------------------- #-- dns_he_add() - Add TXT record --------------------------------------
# Usage: dns_he_add _acme-challenge.subdomain.domain.com "XyZ123..." # Usage: dns_he_add _acme-challenge.subdomain.domain.com "XyZ123..."

View File

@ -1,8 +1,12 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# dns_hetzner_info='Hetzner.com
#HETZNER_Token="sdfsdfsdfljlbjkljlkjsdfoiwje" Site: Hetzner.com
# Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_hetzner
Options:
HETZNER_Token API Token
Issues: github.com/acmesh-official/acme.sh/issues/2943
'
HETZNER_Api="https://dns.hetzner.com/api/v1" HETZNER_Api="https://dns.hetzner.com/api/v1"

View File

@ -1,9 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# dns_hexonet_info='Hexonet.com
# Hexonet_Login="username!roleId" Site: Hexonet.com
# Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_hexonet
# Hexonet_Password="rolePassword" Options:
Hexonet_Login Login. E.g. "username!roleId"
Hexonet_Password Role Password
Issues: github.com/acmesh-official/acme.sh/issues/2389
'
Hexonet_Api="https://coreapi.1api.net/api/call.cgi" Hexonet_Api="https://coreapi.1api.net/api/call.cgi"

View File

@ -1,10 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# hosting.de API dns_hostingde_info='Hosting.de
Site: Hosting.de
# Values to export: Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_hostingde
# export HOSTINGDE_ENDPOINT='https://secure.hosting.de' Options:
# export HOSTINGDE_APIKEY='xxxxx' HOSTINGDE_ENDPOINT Endpoint. E.g. "https://secure.hosting.de"
HOSTINGDE_APIKEY API Key
Issues: github.com/acmesh-official/acme.sh/issues/2058
'
######## Public functions ##################### ######## Public functions #####################

View File

@ -1,8 +1,14 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# HUAWEICLOUD_Username dns_huaweicloud_info='HuaweiCloud.com
# HUAWEICLOUD_Password Site: HuaweiCloud.com
# HUAWEICLOUD_DomainName Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_huaweicloud
Options:
HUAWEICLOUD_Username Username
HUAWEICLOUD_Password Password
HUAWEICLOUD_DomainName DomainName
Issues: github.com/acmesh-official/acme.sh/issues/3265
'
iam_api="https://iam.myhuaweicloud.com" iam_api="https://iam.myhuaweicloud.com"
dns_api="https://dns.ap-southeast-1.myhuaweicloud.com" # Should work dns_api="https://dns.ap-southeast-1.myhuaweicloud.com" # Should work

View File

@ -1,8 +1,14 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
## Infoblox API integration by Jason Keller and Elijah Tenai dns_infoblox_info='Infoblox.com
## Site: Infoblox.com
## Report any bugs via https://github.com/jasonkeller/acme.sh Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_infoblox
Options:
Infoblox_Creds Credentials. E.g. "username:password"
Infoblox_Server Server hostname. IP or FQDN of infoblox appliance
Issues: github.com/jasonkeller/acme.sh
Author: Jason Keller, Elijah Tenai
'
dns_infoblox_add() { dns_infoblox_add() {

View File

@ -1,19 +1,20 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_infomaniak_info='Infomaniak.com
Site: Infomaniak.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_infomaniak
Options:
INFOMANIAK_API_TOKEN API Token
Issues: github.com/acmesh-official/acme.sh/issues/3188
'
###############################################################################
# Infomaniak API integration
#
# To use this API you need visit the API dashboard of your account # To use this API you need visit the API dashboard of your account
# once logged into https://manager.infomaniak.com add /api/dashboard to the URL # once logged into https://manager.infomaniak.com add /api/dashboard to the URL
# #
# Please report bugs to
# https://github.com/acmesh-official/acme.sh/issues/3188
#
# Note: the URL looks like this: # Note: the URL looks like this:
# https://manager.infomaniak.com/v3/<account_id>/api/dashboard # https://manager.infomaniak.com/v3/<account_id>/api/dashboard
# Then generate a token with the scope Domain # Then generate a token with the scope Domain
# this is given as an environment variable INFOMANIAK_API_TOKEN # this is given as an environment variable INFOMANIAK_API_TOKEN
###############################################################################
# base variables # base variables

View File

@ -1,12 +1,14 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
#This is the Internet.BS api wrapper for acme.sh dns_internetbs_info='InternetBS.net
# Site: InternetBS.net
#Author: <alexey@nelexa.ru> Ne-Lexa Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_internetbs
#Report Bugs here: https://github.com/Ne-Lexa/acme.sh Options:
INTERNETBS_API_KEY API Key
#INTERNETBS_API_KEY="sdfsdfsdfljlbjkljlkjsdfoiwje" INTERNETBS_API_PASSWORD API Password
#INTERNETBS_API_PASSWORD="sdfsdfsdfljlbjkljlkjsdfoiwje" Issues: github.com/acmesh-official/acme.sh/issues/2261
Author: Ne-Lexa <alexey@nelexa.ru>
'
INTERNETBS_API_URL="https://api.internet.bs" INTERNETBS_API_URL="https://api.internet.bs"

View File

@ -1,10 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_inwx_info='INWX.de
Site: INWX.de
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_inwx
Options:
INWX_User Username
INWX_Password Password
'
#
#INWX_User="username"
#
#INWX_Password="password"
#
# Dependencies: # Dependencies:
# ------------- # -------------
# - oathtool (When using 2 Factor Authentication) # - oathtool (When using 2 Factor Authentication)

View File

@ -1,14 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# Supports IONOS DNS API v1.0.1 dns_ionos_info='IONOS.de
# Site: IONOS.de
# Usage: Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_ionos
# Export IONOS_PREFIX and IONOS_SECRET before calling acme.sh: Options:
# IONOS_PREFIX Prefix
# $ export IONOS_PREFIX="..." IONOS_SECRET Secret
# $ export IONOS_SECRET="..." Issues: github.com/acmesh-official/acme.sh/issues/3379
# '
# $ acme.sh --issue --dns dns_ionos ...
IONOS_API="https://api.hosting.ionos.com/dns" IONOS_API="https://api.hosting.ionos.com/dns"
IONOS_ROUTE_ZONES="/v1/zones" IONOS_ROUTE_ZONES="/v1/zones"

145
dnsapi/dns_ionos_cloud.sh Normal file
View File

@ -0,0 +1,145 @@
#!/usr/bin/env sh
# Supports IONOS Cloud DNS API v1.15.4
#
# Usage:
# Export IONOS_TOKEN before calling acme.sh:
# $ export IONOS_TOKEN="..."
#
# $ acme.sh --issue --dns dns_ionos_cloud ...
IONOS_CLOUD_API="https://dns.de-fra.ionos.com"
IONOS_CLOUD_ROUTE_ZONES="/zones"
dns_ionos_cloud_add() {
fulldomain=$1
txtvalue=$2
if ! _ionos_init; then
return 1
fi
_record_name=$(printf "%s" "$fulldomain" | cut -d . -f 1)
_body="{\"properties\":{\"name\":\"$_record_name\", \"type\":\"TXT\", \"content\":\"$txtvalue\"}}"
if _ionos_cloud_rest POST "$IONOS_CLOUD_ROUTE_ZONES/$_zone_id/records" "$_body" && [ "$_code" = "202" ]; then
_info "TXT record has been created successfully."
return 0
fi
return 1
}
dns_ionos_cloud_rm() {
fulldomain=$1
txtvalue=$2
if ! _ionos_init; then
return 1
fi
if ! _ionos_cloud_get_record "$_zone_id" "$txtvalue" "$fulldomain"; then
_err "Could not find _acme-challenge TXT record."
return 1
fi
if _ionos_cloud_rest DELETE "$IONOS_CLOUD_ROUTE_ZONES/$_zone_id/records/$_record_id" && [ "$_code" = "202" ]; then
_info "TXT record has been deleted successfully."
return 0
fi
return 1
}
_ionos_init() {
IONOS_TOKEN="${IONOS_TOKEN:-$(_readaccountconf_mutable IONOS_TOKEN)}"
if [ -z "$IONOS_TOKEN" ]; then
_err "You didn't specify an IONOS token yet."
_err "Read https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate to learn how to get a token."
_err "You need to set it before calling acme.sh:"
_err "\$ export IONOS_TOKEN=\"...\""
_err "\$ acme.sh --issue -d ... --dns dns_ionos_cloud"
return 1
fi
_saveaccountconf_mutable IONOS_TOKEN "$IONOS_TOKEN"
if ! _get_cloud_zone "$fulldomain"; then
_err "Cannot find zone $zone in your IONOS account."
return 1
fi
return 0
}
_get_cloud_zone() {
domain=$1
zone=$(printf "%s" "$domain" | cut -d . -f 2-)
if _ionos_cloud_rest GET "$IONOS_CLOUD_ROUTE_ZONES?filter.zoneName=$zone"; then
_response="$(echo "$_response" | tr -d "\n")"
_zone_list_items=$(echo "$_response" | _egrep_o "\"items\":.*")
_zone_id=$(printf "%s\n" "$_zone_list_items" | _egrep_o "\"id\":\"[a-fA-F0-9\-]*\"" | _head_n 1 | cut -d : -f 2 | tr -d '\"')
if [ "$_zone_id" ]; then
return 0
fi
fi
return 1
}
_ionos_cloud_get_record() {
zone_id=$1
txtrecord=$2
# this is to transform the domain to lower case
fulldomain=$(printf "%s" "$3" | _lower_case)
# this is to transform record name to lower case
# IONOS Cloud API transforms all record names to lower case
_record_name=$(printf "%s" "$fulldomain" | cut -d . -f 1 | _lower_case)
if _ionos_cloud_rest GET "$IONOS_CLOUD_ROUTE_ZONES/$zone_id/records"; then
_response="$(echo "$_response" | tr -d "\n")"
pattern="\{\"id\":\"[a-fA-F0-9\-]*\",\"type\":\"record\",\"href\":\"/zones/$zone_id/records/[a-fA-F0-9\-]*\",\"metadata\":\{\"createdDate\":\"[A-Z0-9\:\.\-]*\",\"lastModifiedDate\":\"[A-Z0-9\:\.\-]*\",\"fqdn\":\"$fulldomain\",\"state\":\"AVAILABLE\",\"zoneId\":\"$zone_id\"\},\"properties\":\{\"content\":\"$txtrecord\",\"enabled\":true,\"name\":\"$_record_name\",\"priority\":[0-9]*,\"ttl\":[0-9]*,\"type\":\"TXT\"\}\}"
_record="$(echo "$_response" | _egrep_o "$pattern")"
if [ "$_record" ]; then
_record_id=$(printf "%s\n" "$_record" | _egrep_o "\"id\":\"[a-fA-F0-9\-]*\"" | _head_n 1 | cut -d : -f 2 | tr -d '\"')
return 0
fi
fi
return 1
}
_ionos_cloud_rest() {
method="$1"
route="$2"
data="$3"
export _H1="Authorization: Bearer $IONOS_TOKEN"
# clear headers
: >"$HTTP_HEADER"
if [ "$method" != "GET" ]; then
_response="$(_post "$data" "$IONOS_CLOUD_API$route" "" "$method" "application/json")"
else
_response="$(_get "$IONOS_CLOUD_API$route")"
fi
_code="$(grep "^HTTP" "$HTTP_HEADER" | _tail_n 1 | cut -d " " -f 2 | tr -d "\\r\\n")"
if [ "$?" != "0" ]; then
_err "Error $route: $_response"
return 1
fi
_debug2 "_response" "$_response"
_debug2 "_code" "$_code"
return 0
}

View File

@ -1,13 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
#Created by Roman Lumetsberger, to use ipv64.net's API to add/remove text records dns_ipv64_info='IPv64.net
#2022/11/29 Site: IPv64.net
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_ipv64
# Pass credentials before "acme.sh --issue --dns dns_ipv64 ..." Options:
# -- IPv64_Token API Token
# export IPv64_Token="aaaaaaaaaaaaaaaaaaaaaaaaaa" Issues: github.com/acmesh-official/acme.sh/issues/4419
# -- Author: Roman Lumetsberger
# '
IPv64_API="https://ipv64.net/api" IPv64_API="https://ipv64.net/api"

View File

@ -1,17 +1,20 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_ispconfig_info='ISPConfig Server API
Site: ISPConfig.org
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_ispconfig
Options:
ISPC_User Remote User
ISPC_Password Remote Password
ISPC_Api API URL. E.g. "https://ispc.domain.tld:8080/remote/json.php"
ISPC_Api_Insecure Insecure TLS. 0: check for cert validity, 1: always accept
'
# ISPConfig 3.1 API # ISPConfig 3.1 API
# User must provide login data and URL to the ISPConfig installation incl. port. The remote user in ISPConfig must have access to: # User must provide login data and URL to the ISPConfig installation incl. port.
# The remote user in ISPConfig must have access to:
# - DNS txt Functions # - DNS txt Functions
# Report bugs to https://github.com/sjau/acme.sh
# Values to export:
# export ISPC_User="remoteUser"
# export ISPC_Password="remotePassword"
# export ISPC_Api="https://ispc.domain.tld:8080/remote/json.php"
# export ISPC_Api_Insecure=1 # Set 1 for insecure and 0 for secure -> difference is whether ssl cert is checked for validity (0) or whether it is just accepted (1)
######## Public functions ##################### ######## Public functions #####################
#Usage: dns_myapi_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" #Usage: dns_myapi_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"

View File

@ -1,9 +1,14 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# dns_jd_info='jdcloud.com
#JD_ACCESS_KEY_ID="sdfsdfsdfljlbjkljlkjsdfoiwje" Site: jdcloud.com
#JD_ACCESS_KEY_SECRET="xxxxxxx" Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_jd
#JD_REGION="cn-north-1" Options:
JD_ACCESS_KEY_ID Access key ID
JD_ACCESS_KEY_SECRET Access key secret
JD_REGION Region. E.g. "cn-north-1"
Issues: github.com/acmesh-official/acme.sh/issues/2388
'
_JD_ACCOUNT="https://uc.jdcloud.com/account/accesskey" _JD_ACCOUNT="https://uc.jdcloud.com/account/accesskey"

View File

@ -1,27 +1,14 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# Joker.com API for acme.sh dns_joker_info='Joker.com
# Site: Joker.com
# This script adds the necessary TXT record to a domain in Joker.com. Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_joker
# Options:
# You must activate Dynamic DNS in Joker.com DNS configuration first. JOKER_USERNAME Username
# Username and password below refer to Dynamic DNS authentication, JOKER_PASSWORD Password
# not your Joker.com login credentials. Issues: github.com/acmesh-official/acme.sh/issues/2840
# See: https://joker.com/faq/content/11/427/en/what-is-dynamic-dns-dyndns.html Author: <https://github.com/aattww/>
# '
# NOTE: This script does not support wildcard certificates, because
# Joker.com API does not support adding two TXT records with the same
# subdomain. Adding the second record will overwrite the first one.
# See: https://joker.com/faq/content/6/496/en/let_s-encrypt-support.html
# "... this request will replace all TXT records for the specified
# label by the provided content"
#
# Author: aattww (https://github.com/aattww/)
#
# Report bugs to https://github.com/acmesh-official/acme.sh/issues/2840
#
# JOKER_USERNAME="xxxx"
# JOKER_PASSWORD="xxxx"
JOKER_API="https://svc.joker.com/nic/replace" JOKER_API="https://svc.joker.com/nic/replace"

View File

@ -1,12 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# kapper.net domain api dns_kappernet_info='kapper.net
# for further questions please contact: support@kapper.net Site: kapper.net
# please report issues here: https://github.com/acmesh-official/acme.sh/issues/2977 Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_kappernet
Options:
#KAPPERNETDNS_Key="yourKAPPERNETapikey" KAPPERNETDNS_Key API Key
#KAPPERNETDNS_Secret="yourKAPPERNETapisecret" KAPPERNETDNS_Secret API Secret
#KAPPERNETDNS_Api="https://dnspanel.kapper.net/API/1.2?APIKey=$KAPPERNETDNS_Key&APISecret=$KAPPERNETDNS_Secret" Issues: github.com/acmesh-official/acme.sh/issues/2977
'
############################################################################### ###############################################################################
# called with # called with

View File

@ -1,19 +1,16 @@
#!/usr/bin/env sh #!/usr/bin/env sh
######################################################################## # shellcheck disable=SC2034
# All-inkl Kasserver hook script for acme.sh dns_kas_info='All-inkl Kas Server
# Site: kas.all-inkl.com
# Environment variables: Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_kas
# Options:
# - $KAS_Login (Kasserver API login name) KAS_Login API login name
# - $KAS_Authtype (Kasserver API auth type. Default: plain) KAS_Authtype API auth type. Default: "plain"
# - $KAS_Authdata (Kasserver API auth data.) KAS_Authdata API auth data
# Issues: github.com/acmesh-official/acme.sh/issues/2715
# Last update: squared GmbH <github@squaredgmbh.de> Author: squared GmbH <github@squaredgmbh.de>, Martin Kammerlander <martin.kammerlander@phlegx.com>, Marc-Oliver Lange <git@die-lang.es>
# Credits: '
# - dns_he.sh. Thanks a lot man!
# - Martin Kammerlander, Phlegx Systems OG <martin.kammerlander@phlegx.com>
# - Marc-Oliver Lange <git@die-lang.es>
# - https://github.com/o1oo11oo/kasapi.sh
######################################################################## ########################################################################
KAS_Api_GET="$(_get "https://kasapi.kasserver.com/soap/wsdl/KasApi.wsdl")" KAS_Api_GET="$(_get "https://kasapi.kasserver.com/soap/wsdl/KasApi.wsdl")"
KAS_Api="$(echo "$KAS_Api_GET" | tr -d ' ' | grep -i "<soap:addresslocation=" | sed "s/='/\n/g" | grep -i "http" | sed "s/'\/>//g")" KAS_Api="$(echo "$KAS_Api_GET" | tr -d ' ' | grep -i "<soap:addresslocation=" | sed "s/='/\n/g" | grep -i "http" | sed "s/'\/>//g")"

View File

@ -1,16 +1,17 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_kinghost_info='King.host
Domains: KingHost.net KingHost.com.br
Site: King.host
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_kinghost
Options:
KINGHOST_Username Username
KINGHOST_Password Password
Author: Felipe Keller Braz <felipebraz@kinghost.com.br>
'
############################################################
# KingHost API support # # KingHost API support #
# https://api.kinghost.net/doc/ # # https://api.kinghost.net/doc/ #
# #
# Author: Felipe Keller Braz <felipebraz@kinghost.com.br> #
# Report Bugs here: https://github.com/kinghost/acme.sh #
# #
# Values to export: #
# export KINGHOST_Username="email@provider.com" #
# export KINGHOST_Password="xxxxxxxxxx" #
############################################################
KING_Api="https://api.kinghost.net/acme" KING_Api="https://api.kinghost.net/acme"

View File

@ -1,4 +1,14 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_knot_info='Knot Server knsupdate
Site: www.knot-dns.cz/docs/2.5/html/man_knsupdate.html
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_knot
Options:
KNOT_SERVER Server hostname. Default: "localhost".
KNOT_KEY File path to TSIG key
'
# See also dns_nsupdate.sh
######## Public functions ##################### ######## Public functions #####################

View File

@ -1,7 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
#LA_Id="test123" dns_la_info='dns.la
#LA_Key="d1j2fdo4dee3948" Site: dns.la
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_la
Options:
LA_Id API ID
LA_Key API key
Issues: github.com/acmesh-official/acme.sh/issues/4257
'
LA_Api="https://api.dns.la/api" LA_Api="https://api.dns.la/api"

View File

@ -1,8 +1,14 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_leaseweb_info='Leaseweb.com
Site: Leaseweb.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_leaseweb
Options:
LSW_Key API Key
Issues: github.com/acmesh-official/acme.sh/issues/2558
Author: Rolph Haspers <r.haspers@global.leaseweb.com>
'
#Author: Rolph Haspers <r.haspers@global.leaseweb.com>
#Utilize leaseweb.com API to finish dns-01 verifications.
#Requires a Leaseweb API Key (export LSW_Key="Your Key")
#See https://developer.leaseweb.com for more information. #See https://developer.leaseweb.com for more information.
######## Public functions ##################### ######## Public functions #####################

View File

@ -1,8 +1,12 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_lexicon_info='Lexicon DNS client
Site: github.com/AnalogJ/lexicon
Docs: github.com/acmesh-official/acme.sh/wiki/How-to-use-lexicon-DNS-API
Options:
PROVIDER Provider
'
# dns api wrapper of lexicon for acme.sh
# https://github.com/AnalogJ/lexicon
lexicon_cmd="lexicon" lexicon_cmd="lexicon"
wiki="https://github.com/acmesh-official/acme.sh/wiki/How-to-use-lexicon-dns-api" wiki="https://github.com/acmesh-official/acme.sh/wiki/How-to-use-lexicon-dns-api"

View File

@ -1,6 +1,12 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
#Author: Philipp Grosswiler <philipp.grosswiler@swiss-design.net> dns_linode_info='Linode.com (Old)
Deprecated. Use dns_linode_v4
Site: Linode.com
Options:
LINODE_API_KEY API Key
Author: Philipp Grosswiler <philipp.grosswiler@swiss-design.net>
'
LINODE_API_URL="https://api.linode.com/?api_key=$LINODE_API_KEY&api_action=" LINODE_API_URL="https://api.linode.com/?api_key=$LINODE_API_KEY&api_action="

View File

@ -1,7 +1,12 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
#Original Author: Philipp Grosswiler <philipp.grosswiler@swiss-design.net> dns_linode_v4_info='Linode.com
#v4 Update Author: Aaron W. Swenson <aaron@grandmasfridge.org> Site: Linode.com
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_linode_v4
Options:
LINODE_V4_API_KEY API Key
Author: Philipp Grosswiler <philipp.grosswiler@swiss-design.net>, Aaron W. Swenson <aaron@grandmasfridge.org>
'
LINODE_V4_API_URL="https://api.linode.com/v4/domains" LINODE_V4_API_URL="https://api.linode.com/v4/domains"

View File

@ -1,11 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# dns_loopia_info='Loopia.se
#LOOPIA_User="username" Site: Loopia.se
# Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_loopia
#LOOPIA_Password="password" Options:
# LOOPIA_Api API URL. E.g. "https://api.loopia.<TLD>/RPCSERV" where the <TLD> is one of: com, no, rs, se. Default: "se".
#LOOPIA_Api="https://api.loopia.<TLD>/RPCSERV" LOOPIA_User Username
LOOPIA_Password Password
'
LOOPIA_Api_Default="https://api.loopia.se/RPCSERV" LOOPIA_Api_Default="https://api.loopia.se/RPCSERV"

View File

@ -1,11 +1,14 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# bug reports to dev@1e.ca dns_lua_info='LuaDNS.com
Domains: LuaDNS.net
# Site: LuaDNS.com
#LUA_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_lua
# Options:
#LUA_Email="user@luadns.net" LUA_Key API key
LUA_Email Email
Author: <dev@1e.ca>
'
LUA_Api="https://api.luadns.com/v1" LUA_Api="https://api.luadns.com/v1"

View File

@ -1,4 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_maradns_info='MaraDNS Server
Site: MaraDNS.samiam.org
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_maradns
Options:
MARA_ZONE_FILE Zone file path. E.g. "/etc/maradns/db.domain.com"
MARA_DUENDE_PID_PATH Duende PID Path. E.g. "/run/maradns/etc_maradns_mararc.pid"
Issues: github.com/acmesh-official/acme.sh/issues/2072
'
#Usage: dns_maradns_add _acme-challenge.www.domain.com "token" #Usage: dns_maradns_add _acme-challenge.www.domain.com "token"
dns_maradns_add() { dns_maradns_add() {

View File

@ -1,9 +1,13 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
# bug reports to dev@1e.ca dns_me_info='DnsMadeEasy.com
Site: DnsMadeEasy.com
# ME_Key=qmlkdjflmkqdjf Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_me
# ME_Secret=qmsdlkqmlksdvnnpae Options:
ME_Key API Key
ME_Secret API Secret
Author: <dev@1e.ca>
'
ME_Api=https://api.dnsmadeeasy.com/V2.0/dns/managed ME_Api=https://api.dnsmadeeasy.com/V2.0/dns/managed

View File

@ -1,17 +1,16 @@
#!/usr/bin/env sh #!/usr/bin/env sh
# shellcheck disable=SC2034
dns_miab_info='Mail-in-a-Box
Site: MailInaBox.email
Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_miab
Options:
MIAB_Username Admin username
MIAB_Password Admin password
MIAB_Server Server hostname. FQDN of your_MIAB Server
Issues: github.com/acmesh-official/acme.sh/issues/2550
Author: Darven Dissek, William Gertz
'
# Name: dns_miab.sh
#
# Authors:
# Darven Dissek 2018
# William Gertz 2019
#
# Thanks to Neil Pang and other developers here for code reused from acme.sh from DNS-01
# used to communicate with the MailinaBox Custom DNS API
# Report Bugs here:
# https://github.com/billgertz/MIAB_dns_api (for dns_miab.sh)
# https://github.com/acmesh-official/acme.sh (for acme.sh)
#
######## Public functions ##################### ######## Public functions #####################
#Usage: dns_miab_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" #Usage: dns_miab_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"

Some files were not shown because too many files have changed in this diff Show More