blob: 6c2a4cc408ab6f5689de0ebd97f702fdcdbd1a37 (
plain)
- #!/bin/sh
- #
- # Renew letsencrypt certificates
- set -eu
- REALM=$(cat /etc/local-ORG/realm) || true
- # resolve hostnames of service installed and registered with Redpill
- servicehosts() {
- SERVICE=$1; shift
- for binary in "$@"; do
- > /dev/null which -- "$binary" || exit
- done
- cat "/etc/local-REDPILL/$REALM/${SERVICE}host" \
- "/etc/local-REDPILL/$REALM/${SERVICE}althosts" \
- 2> /dev/null \
- | perl -0777 -pe 's/\s*\#.*//gm;s/^\s+//;s/\s+$//;s/\s+/|/g'
- }
- MAILHOSTS=$(servicehosts mail postconf) || true
- mailname=$(cat /etc/mailname) || true
- fqdn=$(hostname --fqdn)
- domain=$(hostname --domain)
- # mailhost is either mailname listed as a Redpill mailhost,
- # or default Redpill mailhost if mailname equals domain
- mailhost=''
- case "$mailname" in
- "$MAILHOSTS")
- mailhost=$mailname
- ;;
- "$domain")
- mailhost=$(cat "/etc/local-REDPILL/$REALM/mailhost") || true
- ;;
- esac
- # update non-EC mailhost cert if resolvable and not a certdomain
- if [ -n "$mailhost" ]; then
- if [ -n "$fqdn" ] && [ "$mailhost" != "$fqdn" ]; then
- extradomains=${extradomains:+$extradomains }$fqdn
- fi
- if [ -n "$domain" ] && [ "$mailhost" != "$domain" ] && [ "$fqdn" != "$domain" ]; then
- extradomains=${extradomains:+$extradomains }$domain
- fi
- if ! grep ^"$mailhost" /etc/dehydrated/domains.txt; then
- dehydrated --cron --domain "$mailhost $extradomains" --algo rsa
- fi
- fi
- # update certdomain certs
- dehydrated --cron "$@"
|