Docker Hilfe

Seite 1 von 1 - Forum: Linux and other OS auf overclockers.at

URL: https://www.overclockers.at/linux/docker-hilfe_262134/page_1 - zur Vollversion wechseln!


Viper780 schrieb am 09.07.2023 um 20:04

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 schrieb am 10.07.2023 um 02:39

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 schrieb am 10.07.2023 um 07:56

Habe auch swag im Einsatz. Sehr simpel, kanns nur empfehlen :)


Viper780 schrieb am 10.07.2023 um 08:05

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 schrieb am 10.07.2023 um 08:20

Eventuell die Zertifikate für die Container per cron Job in ein read only Verzeichnis mittels rsync schieben?


COLOSSUS schrieb am 10.07.2023 um 08:30

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 schrieb am 10.07.2023 um 11:49

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 schrieb am 10.07.2023 um 12:11

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 schrieb am 10.07.2023 um 15:24

ja ich würds auch mit reverse proxy machen


ica schrieb am 10.07.2023 um 15:44

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 schrieb am 10.07.2023 um 16:19

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 schrieb am 10.07.2023 um 17:39

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 schrieb am 10.07.2023 um 17:42

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 schrieb am 10.07.2023 um 19:35

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




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2024