# SSL Wildcard Letsencrypt Certificate Renewal [](https://bookstack.pknw1.co.uk/uploads/images/gallery/2025-01/scaled-1680-/HLPpknw1logo-white-png.png) ##### `/usr/local/bin/renew-ssl-wildcard.sh` ****SSL Check and Renew Wildcard**** uses Letsencrypt with OVH api to request a wildcard certificate ``` #@pknw1 #!/bin/bash # renew wildcard SSL certs DOMAIN=$1 function renew() { sudo docker run -it --rm --name certbot \ -v "/etc/letsencrypt:/etc/letsencrypt" \ -v "/var/lib/letsencrypt:/var/lib/letsencrypt" \ -v "/root/ovh.conf:/ovh.conf" \ certbot/dns-ovh certonly --dns-ovh --dns-ovh-credentials /ovh.conf \ --agree-tos -m pknw1@hotmail.co.uk \ -d *."${DOMAIN}" -d "${DOMAIN}" } function merge() { if [ -f /etc/ssl/private/wildcard-"${DOMAIN}".pem ]; then sudo rm /etc/ssl/private/wildcard-"${DOMAIN}".pem; fi sudo find /etc/letsencrypt/live -type l -iname '*pem' -mmin -3 -exec cat "{}" >> /etc/ssl/private/wildcard-"${DOMAIN}".pem \; } function pfx() { if [ -f /etc/ssl/private/wildcard-"${DOMAIN}".pem ]; then sudo openssl pkcs12 -inkey /etc/ssl/private/wildcard-"${DOMAIN}".pem -in /etc/ssl/private/wildcard-"${DOMAIN}".pem -export -out /etc/ssl/private/wildcard-"${DOMAIN}".pfx -passout pass: fi } renew merge pfx ntfy.sh ssl renewal complete ``` ****pemCheck script**** This script checks a certificate to check if it is expired or not ``` #!/bin/bash # /usr/local/bin/pemCheck CURRENT=$(date +%s) CERT=$(openssl x509 -enddate -noout -in "${1}" | awk -F\= '{print $2}') CHECK=$(date -d"${CERT}" +%s) if [[ $CHECK -lt $CURRENT ]] then echo "removing ${1}" rm "${1}" else echo "valid cert ${1} expires ${CERT}" fi ``` asdas - [ ] script info - [ ] check mark ****further info**** ****Product Home**** [Link](https://www.pknw1.co.uk) ****Documentation**** [Link](https://www.pknw1.co.uk) ****Github**** [Link](https://www.pknw1.co.uk) ****DockerHub**** [Link](https://www.pknw1.co.uk) ****Misc**** [Link](https://www.pknw1.co.uk) more text more text