Sign inSign up

mydcs/ssl-proxy

By mydcs

Updated over 3 years ago

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

Image
1

1.2K

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