Sign inSign up

mydcs/ssl-proxy

By mydcs

•Updated over 3 years ago

https://gitlab.com/mydcs/ssl-proxy

Image
1

1.4K

mydcs/ssl-proxy repository overview

⁠Status

pipeline-status-image release-image

⁠How To

⁠Vorbereitung

  1. Arbeitsverzeichnis anlegen
  2. In das Arbeitsverzeichnis wechseln
  3. Unterordner config anlegen
  4. Datei domains.dat im Ordner config anlegen
  5. Container starten, entweder ueber "docker run" oder "docker compose"

⁠Aufruf

⁠CLI
docker run -it --rm -e DOMAIN=example -e TLD=com -v $(pwd)/config:/srv -v /etc/letsencrypt:/etc/letsencrypt registry.gitlab.com/my-dcs/web-ssl_proxy:latest
⁠Compose
version: "3.8"

services:
  ssl_proxy:
    container_name: ssl_proxy
    hostname: ssl_proxy
    restart: always
    image: registry.gitlab.com/my-dcs/web-ssl_proxy:latest
    environment:
      - DOMAIN=${DOMAIN:-example}
      - TLD=${TLD:-com}
    networks:
      - dcs
    ports:
      - 443:443
    volumes:
      - $PWD/config:/srv
      - /etc/letsencrypt:/etc/letsencrypt

networks:
  dcs:
    name: dcs

⁠Generelle SSL Adressen

Um das Standard-Template fuer SSL zu nutzen einfache eine Datei domains.dat anlegen. Der Aufbau ist wie folgt:

# Kommentar
Domain	Ziel # weitere Parameter werden nicht interpretiert

Folgendes Beispiel illustriert den einfachen Aufbau:

nextcloud.example.com	http://raspberry-pi.fritz.box:8080
pma.example.com		http://pi-3.fritz.box:80 		# PHP My Admin

⁠Spezielle SSL Config

Fuer spezielle Setup ist es moeglich eine Datei mit der Endung ".conf" anzulegen. Diese wird entsprechend ebenfalls beruecksichtigt.

Hier ein Beispiel fuer Nextcloud und Only-Office, beide sind auf unterschiedlichen VMs installiert

server {
    listen                      443 ssl http2;
    server_name                 nextcloud.example.com;
    access_log                  /var/log/nginx/nextcloud.example.com-ssl-access_log;
    error_log                   /var/log/nginx/nextcloud.example.com-ssl-error_log;

    root /var/www/nextcloud.example.com;
    index index.html index.htm index.php;

    
    # Only-Office auf separater VM
    location ~* ^/ds-vpath/ {
        rewrite /ds-vpath/(.*) /$1  break;
        proxy_pass http://192.168.178.18;
        proxy_redirect     off;

        client_max_body_size 100m;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $host/ds-vpath;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # Nextcloud auf separater VM
    location / {
        proxy_pass https://192.168.178.17:443;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $remote_addr;
        proxy_set_header X-Forwarded-Protocol $scheme;
        proxy_redirect off;

        # Send websocket data to the backend aswell
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

}

Tag summary

Content type

Image

Digest

sha256:344b9ba47…

Size

6.8 MB

Last updated

over 3 years ago

docker pull mydcs/ssl-proxy