[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Apache: Zugriffe auf /.well-known/acme-challenge/ fuer alle VirtualHosts abfangen und umleiten
[Thread Prev] | [Thread Next]
- Subject: Re: Apache: Zugriffe auf /.well-known/acme-challenge/ fuer alle VirtualHosts abfangen und umleiten
- From: Thomas Stiefel <Tom@xxxxxxx>
- Date: Tue, 12 Apr 2016 10:50:55 +0200
- To: uugrn@xxxxxxxxxxxxxxx
Hallo Raphael, ich kann dir zwar nicht sagen wo der Denkfehler liegt, aber ich habe evtl. eine andere Loesung fuer das Problem. Ich stand vor einer aehnlichen Herausforderung und hatte auch keine Lust hier redundant irgendwelche Configs und Challange Files zu pflegen. Ich dachte mir da muss es doch einen anderen Weg geben und am sinnvollsten ueber DNS. Nach etwas Recherche bin ich dann auch auf eine passende Loesung gefunden, die noch mehr an Comfort bietet: https://github.com/lukas2511/letsencrypt.sh https://github.com/lukas2511/letsencrypt.sh/blob/master/docs/dns-verification.md Das Script unterstuetzt nicht nur eine Challange ueber DNS, sondern automatisiert das ganze auch noch. Man muss nur in einer Text-Datei (domains.txt) alle (Sub-)Domains inkl. "Alternative Names" eintragen, fuer die man ein Zertifikat benoetigt, und das Script fuehrt dann folgende Steps durch: 1) Pruefung, ob ein Zertifikat fuer die Domain mit allen Alt. Names vorhanden ist (kam ein Alt. Name dazu oder ist weggefallen wird ein neues Zertifikat erstellt) und ob ob noch ein vorgegebene Zeit (Default: 30 Tage) gueltig ist. => Ist das Zertifikat nicht vorhanden oder nicht lange genug gueltig wird ein neues Zertifikat erstellt bzw. das vorhandene erneuert. 2) Es wird ein Challenge Token fuer alle Domains und Alt. Names erstellt und als TXT-Eintrag im Nameserver eingetragen. 3) Es wird ein Zertifikat bei Let's Encrypt beantragt und dann von dort der TXT-Eintrag zur Verifikation abgefragt. 4) Das Zertifikat wird erstellt und signiert. Ich habe so am Wochenende meine Zertifikate von StartSSL auf Let's Encrypt umgestellt. Du muss nur beachten, dass es Limits gibt (https://community.letsencrypt.org/t/rate-limits-for-lets-encrypt/6769). Beispiele fuer DNS Hook Scripts: https://github.com/lukas2511/letsencrypt.sh/wiki/Examples-for-DNS-01-hooks Viele Gruesse Tom Am 01.04.2016 um 15:54 schrieb Raphael Eiselstein: > Hallo zusammen, > > ich versuche sinngemaess folgendes zu loesen: > > Alle > Zugriffe fuer alle VhirtualHosts eines Apache-Servers sollen > grundsaetzlich nicht im jeweiligen VirtualHost Context verarbeitet werden > sondern global abgefangen und umgeleitet werden. > > Hintergrund ist, dass ich auf einem Webserver etwa 27 VirtualHosts habe, > die allesamt nur Reverse Proxies sind, d.h. es gibt fuer diese VirtualHosts > kein DocumentRoot. Fuer "Let's encrypt" brauche ich aber die Moeglichkeit, > Dateien ueber http://www.example.com/.well-known/acme-challenge/xyz.txt > auszuliefern. Ergo will ich alle Zugriffe, die auf diesem Reverse-Proxy > Server ankommen und mit /.well-known/acme-challenge/ anfangen vorher > wegfischen und umleiten an einem internen VHost > http://acme.sigsys.lan/www.example.com/xyz.txt > > > Im gobalen server context habe ich dazu folgenden Versuch gestartet: > > -------------------------- > RewriteEngine on > > RewriteCond "%{HTTP_HOST}" "^(.*)$" > RewriteCond "%{REQUEST_URI}" "^/.well-known/acme-challenge/(.*)" > RewriteRule "^/.well-known/acme-challenge/(.*)" "http://acme.sigsys.lan/%1/%2" [P] > > RewriteOptions InheritDown > -------------------------- > > * Das erste RewriteCond verwende ich nur, um fuer das RewriteRule ein "%1" > zu erhalten, also www.example.com oder www.anotherhost.example.com > > * Das zweite RewriteCond soll alles fangen, was hinter > /.well-known/acme-challenge/ kommt und in %2 speichern, also das > "xyz.txt" im obigen Beispiel. > > Das gleiche habe ich auch nochmal in RewriteRule stehen, das waere dann > als "$1" statt "%2" verfuegbar, entsprechend ebenfalls "xyz.txt". > > "RewriteOptions InheritDown" soll angeblich bewirken, dass die > rewrite-Rules in die Vhosts "vererbt" werden, aehnlich als wuerde ich in > allen VirtualHosts jeweils "RewriteOptions Inherit" verwenden, was die > Reqrite-Regeln aus dem Server-Context "erben" soll. > > Mein Problem ist, dass obiges nicht funktioniert, es ergibt nicht einmal > Fehlermeldungen. Die VirtualHosts reichen die Zugriffe auf > /.well-known/acme-challenge/xyz.txt per ProxyPass an die Backend-Server > durch was in diesem Fall Bloedsinn ist. > > Wo liegt mein Denkfehler? > > > Gruss > Raphael > > > -- UUGRN e.V. http://www.uugrn.org/ http://mailman.uugrn.org/mailman/listinfo/uugrn Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste Archiv: http://lists.uugrn.org/ -- UUGRN e.V. http://www.uugrn.org/ http://mailman.uugrn.org/mailman/listinfo/uugrn Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste Archiv: http://lists.uugrn.org/