acme-common: Create challenge directory on boot
authorToke Høiland-Jørgensen <toke@toke.dk>
Tue, 19 Nov 2024 13:31:54 +0000 (14:31 +0100)
committerToke Høiland-Jørgensen <toke@toke.dk>
Thu, 12 Dec 2024 19:49:06 +0000 (20:49 +0100)
The challenge directory (for webroot challenges) is on a tmpfs, which
means it doesn't exist on boot. Some web servers (uhttpd in particular)
don't like being configured to serve files from a non-existent
directory. So add a boot() section to the ACME init script that just
creates the challenge directory, and make sure it runs relatively early.
That should take care of the non-existent directory issue, while still
keeping the actual certificate renewal controlled by cron.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
net/acme-common/Makefile
net/acme-common/files/acme.init

index 8e012dfb072a58d5dd73bf1d49e7369cb7aa6235..e87f68160241743865ff0e9636bb4b00e9240c60 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=acme-common
-PKG_VERSION:=1.4.0
+PKG_VERSION:=1.4.1
 
 PKG_MAINTAINER:=Toke Høiland-Jørgensen <toke@toke.dk>
 PKG_LICENSE:=GPL-3.0-only
index ba5d04165fc138c19d26a67877cf8aa0cb49ec19..4f1a8f4d6df769f0059cd7d7b146b80b9ad137cd 100644 (file)
@@ -1,5 +1,6 @@
 #!/bin/sh /etc/rc.common
 
+START=20
 USE_PROCD=1
 run_dir=/var/run/acme
 export CHALLENGE_DIR=$run_dir/challenge
@@ -157,3 +158,8 @@ service_triggers() {
        procd_add_config_trigger config.change acme \
                /etc/init.d/acme start
 }
+
+boot() {
+        mkdir -p "$CHALLENGE_DIR"
+        return 0
+}