É fácil criar e atualizar os certificados Vamos codificar com dehydrated
( link ).
Você precisa adicionar /.well-known/acme-challenge/
location para cada site, pois o serviço Let's Encrypt examinará as respostas de desafio sob este local para confirmar que você é o proprietário dos sites para os quais você solicitou certificados:
location /.well-known/acme-challenge/ { allow all; root /st/hosting/hamilton/htdocs; }
E use o mesmo caminho na configuração desidratada:
egrep -v "^#|^[[:space:]]*$" config
WELLKNOWN="/st/hosting/hamilton/htdocs/.well-known/acme-challenge"
CONTACT_EMAIL=<you@email>
Depois disso, coloque todos os seus domínios em domain.txt
file: em cada linha, o primeiro domínio será CommonName
e os outros nomes serão AlternativeNames
, por exemplo:
head -n1 domains.txt
hamilton.rinet.ru jenkins.hamilton.rinet.ru munin.hamilton.rinet.ru
Depois disso, você deve colocar dehydrated -c
no cron e usar um script como este para instalar novos certificados gerados:
#!/bin/sh
CERTS_DIR=/usr/local/etc/dehydrated/certs
NGINX_SSL=/usr/local/etc/nginx/ssl
DOMAINS=$(awk '{ print $1 }' /usr/local/etc/dehydrated/domains.txt)
for d in $DOMAINS; do
short_d=${d%%.rinet.ru}
short_d=${short_d%%.ru}
# short_d=${short_d##www.}
cp -v ${CERTS_DIR}/$d/fullchain.pem ${NGINX_SSL}/${short_d}.crt
cp -v ${CERTS_DIR}/$d/privkey.pem ${NGINX_SSL}/${short_d}.key
done
# Also update certs for Dovecot
cp -v ${CERTS_DIR}/hamilton.rinet.ru/fullchain.pem /usr/local/etc/dovecot/certs/certs/server.crt
cp -v ${CERTS_DIR}/hamilton.rinet.ru/privkey.pem /usr/local/etc/dovecot/certs/private/server.key