OpenWrt
OpenWrt's ddns-scripts package supports a custom update URL with HTTPS. Install the packages (OpenWrt 21.02 and later):
opkg update
opkg install ddns-scripts luci-app-ddns ca-bundle curl
Configure (UCI)
Add to /etc/config/ddns:
config service 'justasrv'
option enabled '1'
option service_name ''
option lookup_host 'acme-main.ddns.justasrv.com'
option domain 'acme-main.ddns.justasrv.com'
option username 'acme-main.ddns.justasrv.com'
option password 'jas_YOUR_TOKEN'
option update_url 'https://[USERNAME]:[PASSWORD]@ddns.justasrv.com/nic/update?hostname=[DOMAIN]&myip=[IP]'
option use_https '1'
option cacert '/etc/ssl/certs'
option ip_source 'web'
option ip_url 'https://ddns.justasrv.com/ip'
option interface 'wan'
option check_interval '5'
option check_unit 'minutes'
option force_interval '20'
option force_unit 'minutes'
/etc/init.d/ddns enable
/etc/init.d/ddns restart
logread -e ddns
The same fields are available in LuCI under Services › Dynamic DNS by choosing -- custom -- as the provider.
force_interval 20 minutes is the heartbeat: it keeps the host ONLINE under the default 30-minute stale threshold, and each heartbeat is a nochg on the server with no DNS write.
Protect the file:
chmod 600 /etc/config/ddns. The token is in it.