certbot mit Windows

Nachdem ich certbot unter cygwin nutzen konnte, stellte sich direkt die Frage: Ist dies überhaupt notwendig? Für mich war dies naheliegend, da ich auch Scripte im Einsatz hatte, die die neuen Zertifikate bei Bedarf direkt weiter verarbeitet haben.

Aber da Python auch unter Windows zur Verfügung steht, habe ich keinen Grund gesehen, dass dies nicht auch unter Windows funktionieren sollte. Und ein kurzer Test hat schnell erstaunlich gute Ergebnisse gezeigt:

Installation unter Windows

Zuerst wird natürlich python benötigt. Die Downloads finden sich unter https://www.python.org/downloads/windows/ und die Installation erfolgt wie unter Windows gewohnt einfach und unkompliziert ab. (Aktuell war Python 3.8.1 aktuell, welches ich für alle Anwender auf meinem Windows Server 2016 Essentials System installiert habe.)

Als nächstes erfolgt, ebenso wie unter cygwin, die Installation von certbot:

pip install certbot

Die Installation lief zügig durch und nach kurzer Zeit stand mir certbot zur Verfügung. Schnell ein kleiner Test:

certbot certonly --manual -d test.kneitzel.de --preferred-challenge dns

Der erste Versuch in einem Terminal ohne Adminrechte erbrachte gleich einen Fehler: Die Applikation möchte mit Adminrechten aufgerufen werden!

Also das Ganze noch einmal mit Administrativen Rechten und es kamen die gewohnten Abfragen, so wie unter anderen Systemen auch. Und nach Aufspielen des TXT Eintrags für _acme-challenge.test im DNS lief alles problemlos durch und ich hatte die Zertifikate.

Die Dateien liegen jetzt natürlich nicht wie bei Unix gewohnt unter /etc/letsencrypt sondern es wurde c:\Certbot angelegt und verwendet.

Anmerkung

Ich habe hier natürlich nur einen sehr kleinen Bereich von Certbot getestet – speziell die manuelle Erstellung/Aktualisierung von Letsencrypt Zertifikaten mit Certbot.
Certbot bietet aber einiges mehr – so sorgt Certbot in der Regel selbst für die Autorisierung (z.B. über das Hinterlegen von Dateien in einem Webserver) und das Einspielen von Zertifikaten. Dies habe ich nicht angetestet und ich kann keine Aussage dazu treffen, ob und wie dies funktionieren würde.

Links

certbot mit Windows (cygwin)

Wenn man selbst Zertifikate von https://letsencrypt.org/ beantragen möchte und ein Windows System sein eigenen nennt, der findet dann erst einmal keine sofortige Lösung:

Man wird auf die Seite vom Certbot geleitet und dort finden sich dann Anleitungen für diverse Distributionen aber leider nicht für Windows. Bei Non Unix findet man lediglich die Aussage: „Certbot is currently only available for UNIX-like operating systems.“, was einem nicht unbedingt direkt weiter hilft.

Aber Unix? Da fällt zumindest mir sofort Cygwin ein. (Microsoft bietet aber auch eine Lösung, um ein Linux System unter Windows laufen zu lassen, das Windows-Subsystem for Linux: https://docs.microsoft.com/de-de/windows/wsl/install-win10)

Cygwin ist schnell von https://www.cygwin.com/ herunter geladen und bei der Installation darauf achten, dass das aktuelle Python mit installiert wird. (Ich habe die paar python38 Pakete installiert.)

Das certbot lässt sich dann über pythen pip installieren:

pip3.8 install certbot

(Den Befehl in einem Cygwin Terminal mit Administrationsrechten eingeben und in Ruhe abwarten, bis die Installation durch ist.)

Die Nutzung von certbot erfolgt dann wie in der Dokumentation beschrieben. Da ich keinen direkten Zugriff auf die Webhosting Server habe, nutze ich die manuelle Verifikation:

cerbot certonly --manual -d fqdn.of.my.server --preferred-challenge dns

certbot gibt dann klare Anweisung, was für ein TXT Eintrag man in der Domain setzen soll und nach setzen des Keys wird dann das Zertifikat ausgestellt / verlängert.

Links