mirror of
https://github.com/dehydrated-io/dehydrated.git
synced 2026-04-24 17:28:29 +02:00
update symlinks after signing the certificate
This commit is contained in:
@@ -120,12 +120,12 @@ sign_domain() {
|
|||||||
mkdir -p "${BASEDIR}/certs/${domain}"
|
mkdir -p "${BASEDIR}/certs/${domain}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
privkey="privkey.pem"
|
||||||
# generate a new private key if we need or want one
|
# generate a new private key if we need or want one
|
||||||
if [[ ! -f "${BASEDIR}/certs/${domain}/privkey.pem" ]] || [[ "${PRIVATE_KEY_RENEW}" = "yes" ]]; then
|
if [[ ! -f "${BASEDIR}/certs/${domain}/privkey.pem" ]] || [[ "${PRIVATE_KEY_RENEW}" = "yes" ]]; then
|
||||||
echo " + Generating private key..."
|
echo " + Generating private key..."
|
||||||
|
privkey="privkey-${timestamp}.pem"
|
||||||
openssl genrsa -out "${BASEDIR}/certs/${domain}/privkey-${timestamp}.pem" "${KEYSIZE}" 2> /dev/null > /dev/null
|
openssl genrsa -out "${BASEDIR}/certs/${domain}/privkey-${timestamp}.pem" "${KEYSIZE}" 2> /dev/null > /dev/null
|
||||||
rm -f "${BASEDIR}/certs/${domain}/privkey.pem"
|
|
||||||
ln -s "privkey-${timestamp}.pem" "${BASEDIR}/certs/${domain}/privkey.pem"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Generate signing request config and the actual signing request
|
# Generate signing request config and the actual signing request
|
||||||
@@ -135,9 +135,7 @@ sign_domain() {
|
|||||||
done
|
done
|
||||||
SAN="${SAN%%, }"
|
SAN="${SAN%%, }"
|
||||||
echo " + Generating signing request..."
|
echo " + Generating signing request..."
|
||||||
openssl req -new -sha256 -key "${BASEDIR}/certs/${domain}/privkey.pem" -out "${BASEDIR}/certs/${domain}/cert-${timestamp}.csr" -subj "/CN=${domain}/" -reqexts SAN -config <(cat "${OPENSSL_CNF}" <(printf "[SAN]\nsubjectAltName=%s" "${SAN}")) > /dev/null
|
openssl req -new -sha256 -key "${BASEDIR}/certs/${domain}/${privkey}" -out "${BASEDIR}/certs/${domain}/cert-${timestamp}.csr" -subj "/CN=${domain}/" -reqexts SAN -config <(cat "${OPENSSL_CNF}" <(printf "[SAN]\nsubjectAltName=%s" "${SAN}")) > /dev/null
|
||||||
rm -f "${BASEDIR}/certs/${domain}/cert.csr"
|
|
||||||
ln -s "cert-${timestamp}.csr" "${BASEDIR}/certs/${domain}/cert.csr"
|
|
||||||
|
|
||||||
# Request and respond to challenges
|
# Request and respond to challenges
|
||||||
for altname in $altnames; do
|
for altname in $altnames; do
|
||||||
@@ -192,11 +190,9 @@ sign_domain() {
|
|||||||
|
|
||||||
# Finally request certificate from the acme-server and store it in cert-${timestamp}.pem and link from cert.pem
|
# Finally request certificate from the acme-server and store it in cert-${timestamp}.pem and link from cert.pem
|
||||||
echo " + Requesting certificate..."
|
echo " + Requesting certificate..."
|
||||||
csr64="$(openssl req -in "${BASEDIR}/certs/${domain}/cert.csr" -outform DER | urlbase64)"
|
csr64="$(openssl req -in "${BASEDIR}/certs/${domain}/cert-${timestamp}.csr" -outform DER | urlbase64)"
|
||||||
crt64="$(signed_request "${CA}/acme/new-cert" '{"resource": "new-cert", "csr": "'"${csr64}"'"}' | openssl base64 -e)"
|
crt64="$(signed_request "${CA}/acme/new-cert" '{"resource": "new-cert", "csr": "'"${csr64}"'"}' | openssl base64 -e)"
|
||||||
printf -- '-----BEGIN CERTIFICATE-----\n%s\n-----END CERTIFICATE-----\n' "${crt64}" > "${BASEDIR}/certs/${domain}/cert-${timestamp}.pem"
|
printf -- '-----BEGIN CERTIFICATE-----\n%s\n-----END CERTIFICATE-----\n' "${crt64}" > "${BASEDIR}/certs/${domain}/cert-${timestamp}.pem"
|
||||||
rm -f "${BASEDIR}/certs/${domain}/cert.pem"
|
|
||||||
ln -s "cert-${timestamp}.pem" "${BASEDIR}/certs/${domain}/cert.pem"
|
|
||||||
|
|
||||||
# Create fullchain.pem
|
# Create fullchain.pem
|
||||||
if [[ -e "${BASEDIR}/certs/${ROOTCERT}" ]] || [[ -e "${SCRIPTDIR}/certs/${ROOTCERT}" ]]; then
|
if [[ -e "${BASEDIR}/certs/${ROOTCERT}" ]] || [[ -e "${SCRIPTDIR}/certs/${ROOTCERT}" ]]; then
|
||||||
@@ -211,6 +207,18 @@ sign_domain() {
|
|||||||
ln -s "fullchain-${timestamp}.pem" "${BASEDIR}/certs/${domain}/fullchain.pem"
|
ln -s "fullchain-${timestamp}.pem" "${BASEDIR}/certs/${domain}/fullchain.pem"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Update remaining symlinks
|
||||||
|
if [ ! "${privkey}" = "privkey.pem" ]; then
|
||||||
|
rm -f "${BASEDIR}/certs/${domain}/privkey.pem"
|
||||||
|
ln -s "privkey-${timestamp}.pem" "${BASEDIR}/certs/${domain}/privkey.pem"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f "${BASEDIR}/certs/${domain}/cert.csr"
|
||||||
|
ln -s "cert-${timestamp}.csr" "${BASEDIR}/certs/${domain}/cert.csr"
|
||||||
|
|
||||||
|
rm -f "${BASEDIR}/certs/${domain}/cert.pem"
|
||||||
|
ln -s "cert-${timestamp}.pem" "${BASEDIR}/certs/${domain}/cert.pem"
|
||||||
|
|
||||||
echo " + Done!"
|
echo " + Done!"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user