59 lines
2.6 KiB
Bash
Executable file
59 lines
2.6 KiB
Bash
Executable file
#!/bin/bash
|
|
s6-svc -O /etc/s6.d/setup
|
|
|
|
# Check if and which configuration file exists
|
|
CONFIGFILE="none"
|
|
for check_config in "/etc/dehydrated" "/usr/local/etc/dehydrated" "${PWD}" "${SCRIPTDIR}"; do
|
|
if [[ -f "${check_config}/config" ]]; then
|
|
CONFIGFILE="${check_config}/config"
|
|
fi
|
|
done
|
|
|
|
# At this point, if no configuration file exists, copy the example into /etc/dehydrated
|
|
if [[ "$CONFIGFILE" == "none" ]]; then
|
|
cp /dehydrated/docs/examples/config /etc/dehydrated/config
|
|
CONFIGFILE="/etc/dehydrated/config"
|
|
fi
|
|
|
|
# Determine if the staging endpoint should be used
|
|
case "$ENDPOINT" in
|
|
"staging")
|
|
# If CA=... is commented, uncomment and set it to staging, if it is set to production, set it to staging
|
|
sed -ie 's/#CA=.*$/CA="https:\/\/acme-staging.api.letsencrypt.org\/directory"/g' $CONFIGFILE
|
|
sed -ie 's/CA=.+acme-v01\.api\..+$/CA="https:\/\/acme-staging.api.letsencrypt.org\/directory"/g' $CONFIGFILE
|
|
# Same procedure for CA_TERMS=...
|
|
sed -ie 's/#CA_TERMS=.*$/CA_TERMS="https:\/\/acme-staging.api.letsencrypt.org\/terms"/g' $CONFIGFILE
|
|
sed -ie 's/CA_TERMS=.+acme-v01\.api\..+$/CA_TERMS="https:\/\/acme-staging.api.letsencrypt.org\/terms"/g' $CONFIGFILE
|
|
;;
|
|
"production")
|
|
# If CA=... is commented, uncomment and set to production, if it was set to staging, set it to production
|
|
sed -ie 's/#CA=.*$/CA="https:\/\/acme-v01.api.letsencrypt.org\/directory"/g' $CONFIGFILE
|
|
sed -ie 's/CA=.+acme-staging\.api\..+$/https:\/\/acme-v01.api.letsencrypt.org\/directory"/g' $CONFIGFILE
|
|
# Same thing for CA_TERMS=...
|
|
sed -ie 's/#CA_TERMS=.*$/CA_TERMS="https:\/\/acme-v01.api.letsencrypt.org\/terms"/g' $CONFIGFILE
|
|
sed -ie 's/CA_TERMS=.+acme-staging\.api\..+$/CA_TERMS="https:\/\/acme-v01.api.letsencrypt.org\/terms"/g' $CONFIGFILE
|
|
;;
|
|
*)
|
|
echo "INFO: No endpoint was specifically set, dehydrated will use its default"
|
|
;;
|
|
esac
|
|
|
|
# Determine which type of challenge should be used
|
|
case "$CHALLENGE" in
|
|
"http-01")
|
|
# If we have a "fresh" config, uncomment the challengetype-line and set our value
|
|
sed -ie 's/#CHALLENGETYPE=.*$/CHALLENGETYPE="http-01"/g' $CONFIGFILE
|
|
# If a challengetype is already set, overwrite it
|
|
sed -ie 's/CHALLENGETYPE=.+$/CHALLENGETYPE="http-01"/g' $CONFIGFILE
|
|
;;
|
|
"dns-01")
|
|
# If we have the default config, uncomment the line and set our challengetype
|
|
sed -ie 's/#CHALLENGETYPE=.*$/CHALLENGETYPE="dns-01"/g' $CONFIGFILE
|
|
# If a challengetype was already set, overwrite it with the new value
|
|
sed -ie 's/CHALLENGETYPE=.+$/CHALLENGETYPE="dns-01"/g' $CONFIGFILE
|
|
;;
|
|
*)
|
|
echo "INFO: No challenge-type was specified, the default from dehydrated will be used"
|
|
;;
|
|
esac
|