summaryrefslogtreecommitdiff
path: root/scripts/acme
diff options
context:
space:
mode:
authoruvok cheetah2025-06-27 20:13:18 +0200
committeruvok cheetah2025-06-27 20:13:18 +0200
commite4d5bdb2d3fb5e232770746a04e55cb65b968cc2 (patch)
treecc3b2b063ba28eb5ea0d438c83e593129bd0f7f5 /scripts/acme
parent1e690360c57f6a442252b654f237bfed84aaa778 (diff)
Add ACME DNS hooks for pdnsutilHEADmaster
Diffstat (limited to 'scripts/acme')
-rwxr-xr-xscripts/acme/dns-auth.sh16
-rwxr-xr-xscripts/acme/dns-clean.sh14
2 files changed, 30 insertions, 0 deletions
diff --git a/scripts/acme/dns-auth.sh b/scripts/acme/dns-auth.sh
new file mode 100755
index 0000000..43a5dad
--- /dev/null
+++ b/scripts/acme/dns-auth.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+if [[ -z "${CERTBOT_DOMAIN}" || -z "${CERTBOT_VALIDATION}" ]]; then
+ echo "Environment not set"
+ exit 1
+fi
+
+ZONE=$(expr match "$CERTBOT_DOMAIN" '.*\.\(.*\..*\)')
+NAMEONLY=$(expr match "$CERTBOT_DOMAIN" '\(.*\.\).*\..*')
+CREATE_DOMAIN="_acme-challenge.${NAMEONLY}"
+
+pdnsutil add-record "${ZONE}" "${CREATE_DOMAIN}" TXT 120 '"'"${CERTBOT_VALIDATION}"'"'
+pdnsutil increase-serial "${ZONE}"
+pdns_control notify "${ZONE}"
+
+sleep 30
diff --git a/scripts/acme/dns-clean.sh b/scripts/acme/dns-clean.sh
new file mode 100755
index 0000000..0eeab27
--- /dev/null
+++ b/scripts/acme/dns-clean.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+if [[ -z "${CERTBOT_DOMAIN}" || -z "${CERTBOT_VALIDATION}" ]]; then
+ echo "Environment not set"
+ exit 1
+fi
+
+ZONE=$(expr match "$CERTBOT_DOMAIN" '.*\.\(.*\..*\)')
+NAMEONLY=$(expr match "$CERTBOT_DOMAIN" '\(.*\.\).*\..*')
+CREATE_DOMAIN="_acme-challenge.${NAMEONLY}"
+
+pdnsutil delete-rrset ${ZONE} ${CREATE_DOMAIN} TXT
+pdnsutil increase-serial "${ZONE}"
+pdns_control notify "${ZONE}"