Letsencrypt wildcard certificaten bij TransIP

Sinds gister heb ik een gratis wildcard SSL certificaat van Letsencrypt. Deze zijn sinds 13 maart te verkrijgen. Omdat je deze certificaten alleen kan krijgen via een DNS validatie en deze elke 3 maanden opnieuw moet uitvoeren heb ik dit geautomatiseerd. TransIP heeft een API waarmee je o.a. de DNS records kan aanpassen. Dit script en hoe je dit kan installeren is te vinden op Github.

https://github.com/roy-bongers/certbot-transip-dns-01-validator

14 thoughts on “Letsencrypt wildcard certificaten bij TransIP”

  1. Hallo Roy,

    Je script na wat problemen aan mijn kant aan de gang gekregen en dit werkt bedankt (super).
    Maar daar het certonly is hoe kan ik nu de certificaten toevoegen aan nginx en webserver synology is daar een makkelijk procedure voor.

    Gr.,
    Martin

    1. Voor Nginx zou je in de basis de volgende configuratie kunnen gebruiken. Wanneer je op Google zoekt naar “Letsencrypt nginx” zul je een hoop voorbeelden kunnen vinden.
      server {
      listen 443 ssl default_server;
      server_name my-domain;

      ssl_certificate /etc/letsencrypt/live/my-domain/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/my-domain/privkey.pem;
      }

      Voor Synology is het denk ik het makkelijkst om daar een Letsencrypt certificaat aan te vragen via de GUI. Dit omdat je anders het certificaat elke 3 maanden opnieuw moet importeren. Ik heb er zelf geen Synology maar hier is een handleiding te vinden: https://synoguide.com/2016/04/14/secure-your-synology-with-https-ssl-certificate-from-lets-encrypt/ .

  2. Ik denk dat het een en ander veranderd is binnen certbot. Ik heb certbot versie 0.25.0-1 (Debian testing) draaien, maar als ik het commando uitvoer, krijg ik de melding dat de certbot geen ondersteuning heeft voor wildcard certificaten.

    Voor wat ik zelf gauw vond op internet, zou je dan dns-01 als schakeloptie moeten gebruiken, maar ook dat werkt niet, helaas. Enig idee wat het kan zijn of wat er gewijzigd is?

    Het OS dat ik gebruik is dus Debian Testing.

    1. Ik gebruik zelf certbot uit de Ubuntu PPA en heb ook 0.25.0 draaien en dat werkt zonder problemen. Voor het ACMEv2 protocol (met ondersteuning voor wildcard) moet je een extra parameter meegeven --server https://acme-v02.api.letsencrypt.org/directory. Het volledige commando is als volgt:

      certbot --server https://acme-v02.api.letsencrypt.org/directory \
      certonly --manual --preferred-challenges=dns \
      --manual-auth-hook /path/to/auth-hook \
      --manual-cleanup-hook /path/to/cleanup-hook \
      -d 'domain.com' -d '*.domain.com'

      Indien je nog steeds problemen hebt zou je -vvv aan certbot mee kunnen geven als optie dan krijg je meer informatie te zien wat er eventueel fout zou kunnen gaan. Het duurt een tijdje voordat het commando klaar is omdat de nameservers geüpdatet moeten zijn met de laatste DNS wijzigingen.

      1. Sorry voor de late reactie, ik had hier niet meer aan gedacht. Ik heb het commando zoals je die geeft ge-copy-paste, de paden naar de auth-hook en cleanup-hook en de domeinnamen juist gezet, maar ik blijf de melding “Wildcard domains are not supported: *.domein.tld” houden.

        1. Intussen wat verder, met de certbot gepulled van Git gaat het in principe goed, ware het niet dat de API class van TransIP niet PHP7.2 compatible is.

      2. Heb ook even Certbot vanuit de Github repo gedownload, die lijkt wat verder te komen, maar ook stond versie 0.26 van certbot in Debian klaar, ik ga daarmee is testen, ik hou je op de hoogte (sorry voor de spam, hahaha!)

    2. Ik heb het PHP-deel werkend. Hij lijkt nu ook wat meer te doen, maar krijg vanuit de cleanup-hook error code 1 returned nu.

      1. Geen foutmelding in beeld? Heb je de laatste versie van mijn script? 29 maart heb ik een bug opgelost bij de cleanup. Als het goed is heb nu in ieder geval wel een certificaat. Als die cleanup het niet goed gedaan heeft heb je in het ergste geval nog een paar TXT DNS records staan.

        Was het trouwens wel nog gelukt onder PHP7.2? Ik heb zonder problemen mijn domein informatie op kunnen halen via 7.2. De rest heb ik niet getest.

        Mocht je nu echt een bug tegen komen kun je het beste een issue aanmaken op GitHub.

        1. Exact weet ik het niet meer. Ik heb uiteindelijk alles handmatig gedaan. Als de certificaten verlopen zijn en ik nieuwen nodig heb, ga ik het nogmaals proberen.

          1. Het is dan eindelijk gelukt. Om de een of andere reden hield mijn Debian installatie een oude versie van certbot aan. Zelfs met apt updaten deed hij niet, geen idee waarom verder. Ik heb de machine een herinstallatie gegeven en kreeg toen gelijk 0.27.nogIets, geloof ik. Daarmee werkte het – uiteindelijk – wel.

  3. Bedankt Roy werkt perfect.
    Super handig voor automatisch een wildcard certificaat te vernieuwen.
    Weer een zorg minder dankzij jouw script!

Leave a Reply

Your email address will not be published. Required fields are marked *