"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Docker Hilfe

Viper780 09.07.2023 - 20:04 2513 13
Posts

Viper780

Er ist tot, Jim!
Avatar
Registered: Mar 2001
Location: Wien
Posts: 48910
Hab jetzt schon länger Docker laufen aber mich dort bisher nicht um Zertifikate gekummert.

Jetzt habe ich Certbot am Host eingerichtet und wollte den "live" Ordner in alle relevanten Container als Volumen mounten.

Leider sind die Files aber selbst schon Links vom Archivorder. Ich seh sie zwar mit ls kann aber mit keinem Programm drauf zugreifen.
Ver[wende ich anstelle von Volumen bind dann muss der Ordner vorher schon im Container existieren (was er nat[rlich nicht tut). Wenn ich den anlege ist bei einem redeployment des Containers alles weg.

Wie habt ihr das geloest? Gibts da einen einfachen Trick?

Das nächste was ich probiere ist ein SMB oder NFS share den ich einbinde. Aber irgendwie bin ich mit der Lösung wegen dem private key nicht ganz glücklich

Rogaahl

Super Moderator
interrupt
Avatar
Registered: Feb 2014
Location: K
Posts: 2079
Zitat aus einem Post von Viper780
Wie habt ihr das geloest? Gibts da einen einfachen Trick?

Den ganzen Mist gar nicht antun und einfach mit einem nginx reverse-proxy arbeiten. Es gibt super easy Container wie z.b "swag", wo sogar schon haufenweise proxy Konfigurationen (für alle gängigen Applikationen) für Subdomains und Folder hinterlegt sind, wo man nur ".sample" aus dem Filename entfernen muss. Um die letsencrypt Zertifikate kümmert er sich auch von selbst, mit deinen angegeben env variablen.


Zitat aus einem Post von Viper780
Leider sind die Files aber selbst schon Links vom Archivorder. Ich seh sie zwar mit ls kann aber mit keinem Programm drauf zugreifen.
Ver[wende ich anstelle von Volumen bind dann muss der Ordner vorher schon im Container existieren (was er nat[rlich nicht tut). Wenn ich den anlege ist bei einem redeployment des Containers alles weg.

Ich glaube, er übernimmt da einfach nur die Links, du müsstest das Quellverzeichnis auch mounten. Wenn du ls -lah in einen "neben" Container ausführst, müsstest du eh sehen, welche Links da stehen. Ich glaube mir ist einmal etwas Ähnliches passiert, genau weis ich nicht mehr, aber ich glaube so war es. Permissions und owner könntest auch noch checken.


Ich hoffe, ich habe da jetzt nichts falsch verstanden und konnte zumindest etwas weiterhelfen..

Denne

Here to stay
Avatar
Registered: Jan 2005
Location: Germany
Posts: 2801
Habe auch swag im Einsatz. Sehr simpel, kanns nur empfehlen :)

Viper780

Er ist tot, Jim!
Avatar
Registered: Mar 2001
Location: Wien
Posts: 48910
Ich bin kein großer Freund von reverse Proxy um bestehende Funktionen nur anders zu nutzen. Erhöht die Komplexität und Angriffsoberfläche.

Hab ja dann erst wieder unverschlüsselte Kommunikation zwischen nginx und den Containern.
Zugegeben würde man die Zertifikate produktiv nicht als Wildcard ausführen und auch nicht verteilen. Sondern in den Container erstellen. Aber da nicht alle Internet Zugriff haben müsste ich eine eigene CA aufbauen.

Das mounten des Quellverzeichnis klingt plausibel. Schau ich mir dann am Abend an

matiss

Chaos Maestro
Avatar
Registered: Dec 2007
Location: Vienna
Posts: 695
Eventuell die Zertifikate für die Container per cron Job in ein read only Verzeichnis mittels rsync schieben?

COLOSSUS

Administrator
Frickler
Avatar
Registered: Dec 2000
Location: ~
Posts: 11902
Zitat aus einem Post von Viper780
Ich bin kein großer Freund von reverse Proxy um bestehende Funktionen nur anders zu nutzen. Erhöht die Komplexität und Angriffsoberfläche.

Und das sagst du, wo du tonnenweise Docker-Containerimage-Shitware laufen hast? In denen wohl zu mindestens 2/3 auch nochmal ein nginx als Reverse Proxy laeuft, weil das *GI-Klumpert von sich aus keine static assets serven will oder kann? Sorry, das kann ich echt nicht ernst nehmen.

Ansonsten, was matiss sagt. Die allermeisten acme-Clients bieten dafuer eine Hook-Infrastruktur an.

Viper780

Er ist tot, Jim!
Avatar
Registered: Mar 2001
Location: Wien
Posts: 48910
Ja ich bin Idealist und nein soweit ich sehe rennt überall lighttpd als webserver ohne proxy.

Aber die Idee mit einer Reihe an Copy commands in einem "-post-hook" script klingt gut.
Damit könnt ich auch weitere Schritte triggern.

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25376
Ich empfehle einen Reverse Proxy. Es lohnt sich, die Komplexität der TLS Edge-Termination nicht in jedem Container haben. Der kümmert sich um die Applikation und der Reverse Proxy um das Exposen der Services.

davebastard

Vinyl-Sammler
Avatar
Registered: Jun 2002
Location: wean
Posts: 11531
ja ich würds auch mit reverse proxy machen

ica

hmm
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9802
Abseits von der Grundsatzdiskussion hier verstehe ich das Problem nicht ganz.

Ich habe ein Certbot Service welches ich via Cronjob starte um meine Zertifikate zu erstellen/aktualisieren. Die landen ganz normal in den dafür vorgesehenen Ordnern von Certbot (conf/live/xxx). Die mounte ich als Volume in andere Docker Services - und das geht ohne Probleme.

Beispiel von meinem nginx Service:
volumes:
- ./certbot/conf:/etc/letsencrypt

Und im nginx verwende ich es dann via:
ssl_certificate /etc/letsencrypt/live/xxx.domain.org/fullchain.pem;


Und das ist doch egal ob ich es jetzt in nginx verwende oder wo anders.

Viper780

Er ist tot, Jim!
Avatar
Registered: Mar 2001
Location: Wien
Posts: 48910
Bei mir kommt dann ein "not found" obwohl die permissions passen und mit ls ich das teil sehe.
Ich habe aber nur den "domain.TLD" Ordner gemountet wenn ich komplett letsencrypt nehme dann wäre auch der Archiv Ordner als Quellverzeichnis mit dabei und es könnt dann gehen.

Dass ist die einfachste Lösung auch wenn mit der post-hook sehr gefällt und den auch mit verwenden werde

COLOSSUS

Administrator
Frickler
Avatar
Registered: Dec 2000
Location: ~
Posts: 11902
Was auch mal gesagt werden muss: certbot ist der mieseste ACME-Client, den ich je benutzt habe. Stattdessen nehme ich immer, wo ich kann, dehydrated || lego || acmetool || acme-tiny, die das imo alle besser machen.

ica

hmm
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9802
Zitat aus einem Post von COLOSSUS
Was auch mal gesagt werden muss: certbot ist der mieseste ACME-Client, den ich je benutzt habe. Stattdessen nehme ich immer, wo ich kann, dehydrated || lego || acmetool || acme-tiny, die das imo alle besser machen.

uh danke - muss ich mir ansehen. Certbot ist nämlich echt nicht angenehm zu verwenden.

Viper780

Er ist tot, Jim!
Avatar
Registered: Mar 2001
Location: Wien
Posts: 48910
Muss ich mir in der Tat mal anschauen. Bisher war ich zu faul und bin damit gut gefahren. Zum Scripten hatte ich mal CryptLE verwendet aber dehydrated wäre dafür besser geeignet und es gibt deutlich mehr helper scripte um provider anzusprechen.

Lego les ich in letzterzeit öfter - evtl auch einen Blick wert
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz