Docker vhosts & APIs

Hallo,
auf meinem Debian Stretch Server habe ich nun Docker sauber am Laufen, in meinem Fall mit Portainer zur Verwaltung sowie Gitlab.
Für beide habe ich ein eigenes Web angelegt mit LetsEncrypt Zertifikaten.

Als Apache Direktive habe ich z.B. beim Portainer
Code:
<Location />
    ProxyPass http://127.0.0.1:9000/
    ProxyPassReverse http://127.0.0.1:9000/
    RequestHeader set X-Forwarded-Proto "https"
</Location>
Gleiches für Gitlab mit entsprechend anderem Port.
Das klappt ganz gut.

Beide Tools haben aber eine eingebaute Konsole bzw. WebIDE welche auf APIs davon gehen und diese funktionieren damit leider nicht.
Für Portainer habe ich zusätzlich das hier versucht, ohne Erfolg:
Code:
<Location /portainer/api/websocket/>
    ProxyPass http://127.0.0.1:9000/api/websocket/
    ProxyPassReverse http://127.0.0.1:9000/api/websocket/
    RewriteEngine on
    RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
    RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
    RewriteRule /api/websocket/(.*) ws://127.0.0.1:9000/api/websocket/$1 [P]
</Location>
Rufe ich Portainer direkt mit IP-Adresse:port auf klappt die Konsole.
Ähnliches bei Gitlab, mit IP klappts, mit dem VHost Proxy nicht.

Hoffe ich finde hier Leute mit Docker / Apache Erfahrung.

LG
 
Hallo,

ich konnte das Thema selbst lösen.

Neben dem http_proxy musste auch das proxy_wstunnel Apache Modul aktiviert werden.

LG
 
Hallo,
ich muss das Thema nochmal hervorholen. Sind die Apache Direktiven aktiv, werden mir die Lets Encrypt Zertifikate nicht erneuert.
Die Console bringt, dass der Prozess fehlgeschlagen ist.

Erst wenn ich die Direktiven entferne und die standard HTML Seite geladen wird, wird das Zertifikat erneuert. Anschließend kann ich die Direktiven wieder aktivieren aber es funktioniert dann eben nur wieder für 3 Monate.
 

Till

Administrator
Das Problem ist dass Du die Requests für LE über die die certs authentifiziert werden mit umleitest, die müssen aber von der Umleitung ausgeschlossen werden, sie müssen also lokal bleiben damit certbot funktioniert. Das sind requests die mit /.well-known/acme-challenge/ beginnen.
 

Werbung

Top