Caddy nos genera automáticamente los certificados digitales de raíz de nuestro dominio y/o de los subdominios según lo tengamos configurado , crea automáticamente una carpeta por cada uno de los certificados
Home Assistant usa el formato PEM tanto para la parte privada como la publica , esta parte la definimos en la sección http de nuestro configuration.yaml
http: ssl_certificate: /config/certificados/certs/xxxxxxxxx.duckdns.org.public.pem ssl_key: /config/certificados/private/xxxxxxxxx.duckdns.org.private.pem
Lo primero que necesitamos es transformar el fichero crt y el fichero key a pem publico y privado
Para ello usaremos el comando openssl , de esta forma obtendremos la clave publica y su certificado
openssl x509 -in antrivas.duckdns.org.crt -out antrivas.duckdns.org.public.pem -outform PEM
Y con esta obtendremos la calve privada y el certificado correspondiente
openssl ec -in antrivas.duckdns.org.key -text > antrivas.duckdns.org.private.pem
Con este comando podremos comprobar la validez del certificado creado
cat antrivas.duckdns.org.public.pem | openssl x509 -text -noout
Copiaremos ambos certificados al directorio donde Home Assistant va a buscarlos
#Copiamos el certificado digital sudo cp -f /home/antonio/Containers/caddy/data/caddy/certificates/acme.zerossl.com-v2-dv90/antrivas.duckdns.org/*.public.pem /home/antonio/Containers/homeassistant/certificados/certs/ sudo cp -f /home/antonio/Containers/caddy/data/caddy/certificates/acme.zerossl.com-v2-dv90/antrivas.duckdns.org/*.private.pem /home/antonio/Containers/homeassistant/certificados/private/
Después de comprobar reiniciando HA la validez de ambos certificados lo añadiremos a una tarea cron que se ejecuta cada dia a las seis de la mañana para que nuestro HA siempre tenga los certificados digitales bien fresquitos
echo "****************************************************************" >> $RUTA_LOG echo `date +"%T"` "REINICIO DEL SISTEMA" >> $RUTA_LOG echo "****************************************************************" >> $RUTA_LOG echo `uptime` | sed -e 's/^[ \t]*//' >> $RUTA_LOG echo "****************************************************************" >> $RUTA_LOG #Creamos los certificados openssl x509 -in /home/antonio/Containers/caddy/data/caddy/certificates/acme.zerossl.com-v2-dv90/antrivas.duckdns.org/antrivas.duckdns.org.crt -out /home/antonio/Containers/caddy/data/caddy/certificates/acme.zerossl.com-v2-dv90/antrivas.duckdns.org/antrivas.duckdns.org.public.pem -outform PEM openssl ec -in /home/antonio/Containers/caddy/data/caddy/certificates/acme.zerossl.com-v2-dv90/antrivas.duckdns.org/antrivas.duckdns.org.key -text > /home/antonio/Containers/caddy/data/caddy/certificates/acme.zerossl.com-v2-dv90/antrivas.duckdns.org/antrivas.duckdns.org.private.pem #Copiamos el certificado digital sudo cp -f /home/antonio/Containers/caddy/data/caddy/certificates/acme.zerossl.com-v2-dv90/antrivas.duckdns.org/*.public.pem /home/antonio/Containers/homeassistant/certificados/certs/ sudo cp -f /home/antonio/Containers/caddy/data/caddy/certificates/acme.zerossl.com-v2-dv90/antrivas.duckdns.org/*.private.pem /home/antonio/Containers/homeassistant/certificados/private/
En las propiedades del certificado veremos que cada vez que se auto renueve lo tendremos listo para usar
Y con esto y un bizcocho ……