Browse code

WIP: Add implementation

Robert Cranston authored on 17/06/2023 18:12:27
Showing 1 changed files
1 1
new file mode 100755
... ...
@@ -0,0 +1,47 @@
1
+#!/bin/sh
2
+set -euC
3
+
4
+# nfsn-dns-certbot DOMAIN NAME EMAIL_NAME INSTALLER [CERTBOT_ARG]...
5
+
6
+# nfsn-dns-certbot "example.com" "" "" ""
7
+# nfsn-dns-certbot "example.com" "git" "" "apache" --quiet
8
+
9
+# Arguments.
10
+
11
+domain="$1" ; shift
12
+name="$1" ; shift
13
+email_name="${1:-"hostmaster"}" ; shift
14
+installer="${1:-}" ; shift
15
+
16
+# Certbot.
17
+
18
+host="${name:+"$name."}$domain"
19
+dir="$(cd "$(dirname "$0")" ; pwd)"
20
+
21
+certbot certonly \
22
+    --non-interactive \
23
+    --email "$email_name@$host" \
24
+    --agree-tos \
25
+    --manual \
26
+    --manual-public-ip-logging-ok \
27
+    --manual-auth-hook "$dir/nfsn-dns-certbot-auth" \
28
+    --manual-cleanup-hook "$dir/nfsn-dns-certbot-cleanup" \
29
+    --preferred-challenges="dns" \
30
+    --domains "$host" \
31
+    "$@"
32
+
33
+if [ -n "$installer" ]
34
+then
35
+    certbot install \
36
+        --cert-name "$host" \
37
+        --installer "$installer" \
38
+
39
+    certbot enhance \
40
+        --non-interactive \
41
+        --cert-name "$host" \
42
+        --domain "$host" \
43
+        --installer "$installer" \
44
+        --redirect \
45
+        --hsts \
46
+        --uir
47
+fi