Hauptmenü

KIX18 SSL: Proxy startet nicht

Begonnen von synova, 03.03.2023 12:36:04

⏪ vorheriges - nächstes ⏩

synova

Hallo,

ich versuche Kix18 mit SSL zum laufen zu bekommen, das klappt aber nicht.
Ich gehe nach der Anleitung hier vor https://docs.kixdesk.com/kix18Administration/kix-start/installation

Dort steht:
Fügen Sie Ihre SSL-Zertifikate in die Docker-Umgebung in folgende Dateien ein:
Zertifikat: proxy/ssl/certs/server.crt
Schlüssel: proxy/ssl/certs/server.key

Den Ordner "certs" gab es nicht unter /opt/kix-on-premise/deploy/linux/proxy/ssl. Den habe ich erstellt. Ist es richtig so oder müssen die Zertifikatsdateien woanders rein?

Wenn ich aber jetzt in der Datei proxy/ssl.conf die # entferne, dann startet der Proxy-Container nicht. Die anderen 4 laufen
Was mache ich falsch?

Dank im Voraus

MfG
Max

mplan

Hi Max,
So richtig einen Unterschied zu unserer funktionierenden Umgebung sehe ich jetzt nicht.
wichtig ist, den Pfad einzuhalten, der ja gegeben ist:
  • proxy/ssl/certs  kommen die Zertifikate hinein. wir haben diese im .pem Format, aber crt/key sollte eigentlich auch funktionieren. 
  • Zertifikatsdateien sollten Leserechte besitzen
  • in ssl.conf die Ports beachten. Je nachdem, ob mit gleichzeitigem non-SSL (HTTP) gearbeitet werden soll, müssen die Ports in der ssl.conf angepasst werden
  • non-ssl.conf ggf. alles auskommentieren
  • prüfen, dass das environment File auch die SSL Ports enthält
  • man kann in der docker-compose.yml auch noch einmal die Pfade überprüfen. (./proxy/ssl, ./proxy/non-ssl.conf, ./proxy/ssl.conf)
Mehr fällt mir auch nicht ein. Ich hatte es auch beim Einrichten (damals), kann mich aber nicht mehr genau an die Ursache erinnern. Es könnten die Ports in der ssl.conf gewesen sein, weil ich anfangs SSL und non-SSL parallel getestet habe.

Viele Grüße
Michael

Marvin G. - FZJ

Hallo Max,

war steht den in den Logs? Wenn du nach dem Start der Container mit der logs.sh die Logs verfolgst, solltest du du an irgendeinem Punkt sehen, warum der proxy nicht startet. So habe ich solche Probleme Anfangs auch in den Griff bekommen.

Ich hatte damals das Problem, dass sich die Zertifikatskette über den in der Anleitung beschriebenen Weg nicht hinzufügen ließ. Die musste ich dann mit in den öffentlichen Schlüsselteil schreiben, damit bei mir alles funktioniert hat.

Verbindung zum Backend nicht möglich (kixdesk.com)

Viele Grüße
Marvin

synova

Hallo,

danke für die Antworten.
Ich habe jetzt etwas mehr Durchblick wo was konfiguriert wird, trotzdem noch kein Erfolg.

Ich habe mir jetzt extra die Let's Ecrypt Zertifikate erstellt, weil mein Wildcard-Zertifikat in p12 und pk7 Format sind.
Jetzt habe ich 4 Dateien: cert1.pem, chain1.pem, fullchain1.pem und privkey1.pem
Welche soll wohin?

Ich muss, wie ich verstanden habe, die cert1.pem in der /opt/kix-on-premise/deploy/linux/proxy/ssl/ssl.conf so konfigurieren:
ssl_certificate            /etc/nginx/conf.d/ssl/certs/cert1.pem;

Habe ich gemacht.. Proxy-Container startet nur, wenn ich in non-ssl.conf alles auskommentiere. Aber dann bekomme ich trotzdem keine Verbindung auf https://ticket.domäne.de:20444

Die Anleitung in den Doks ist so ziemliches Schrott.
Könnte jemand einen anständigen Tutorial erstellen, welches funktioniert?

P.S.: Ich vertehe auch nicht, warum das ganze unbedingt mit Docker laufen muss. Früher ging das ja wunderbar "normal" und konnte die Ressourcen viel besser ausnutzen. Das Docker-Gedöns ist ziemlich langsam in Vergleich zum kix17. Ich habe 8 CPU-Kerne und 16GB RAM der VM gegeben, VHD auf SSD. CPU-Last wird im Hyper-V nur mit 3-4% angezeigt. Host ist ein Dell-Server mit AMD Epyc 7302, der sehr wenig ausgelastet ist. Andere VMs rennen, z.B. Nextcloud, ohne Probleme.

synova

Ach ja log zeigt folgendes
root@ticket:/opt/kix-on-premise/deploy/linux# ./logs.sh | grep *proxy*
kix-proxy-1    | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
kix-proxy-1    | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
kix-proxy-1    | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
kix-proxy-1    | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
kix-proxy-1    | 10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf differs from the packaged version
kix-proxy-1    | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
kix-proxy-1    | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
kix-proxy-1    | /docker-entrypoint.sh: Configuration complete; ready for start up
kix-proxy-1    | 2023/03/12 18:55:10 [warn] 1#1: "ssl_stapling" ignored, issuer certificate not found for certificate "/etc/nginx/conf.d/ssl/certs/cert1.pem"
kix-frontend-1  | + export no_proxy=backend
kix-frontend-1  | + no_proxy=backend
kix-proxy-1    | nginx: [warn] "ssl_stapling" ignored, issuer certificate not found for certificate "/etc/nginx/conf.d/ssl/certs/cert1.pem"
kix-proxy-1    | 2023/03/12 18:55:10 [warn] 1#1: "ssl_stapling" ignored, issuer certificate not found for certificate "/etc/nginx/conf.d/ssl/certs/cert1.pem"
kix-proxy-1    | nginx: [warn] "ssl_stapling" ignored, issuer certificate not found for certificate "/etc/nginx/conf.d/ssl/certs/cert1.pem"
kix-proxy-1    | 2023/03/12 18:55:10 [warn] 1#1: "ssl_stapling" ignored, issuer certificate not found for certificate "/etc/nginx/conf.d/ssl/certs/cert1.pem"
kix-proxy-1    | nginx: [warn] "ssl_stapling" ignored, issuer certificate not found for certificate "/etc/nginx/conf.d/ssl/certs/cert1.pem"
kix-proxy-1    | 2023/03/12 18:55:10 [notice] 1#1: using the "epoll" event method
kix-proxy-1    | 2023/03/12 18:55:10 [notice] 1#1: nginx/1.22.1
kix-proxy-1    | 2023/03/12 18:55:10 [notice] 1#1: built by gcc 11.2.1 20220219 (Alpine 11.2.1_git20220219)
kix-proxy-1    | 2023/03/12 18:55:10 [notice] 1#1: OS: Linux 5.15.0-1034-azure
kix-proxy-1    | 2023/03/12 18:55:10 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
kix-proxy-1    | 2023/03/12 18:55:10 [notice] 1#1: start worker processes
kix-proxy-1    | 2023/03/12 18:55:10 [notice] 1#1: start worker process 29
kix-proxy-1    | 2023/03/12 18:55:10 [notice] 1#1: start worker process 30
kix-proxy-1    | 2023/03/12 18:55:10 [notice] 1#1: start worker process 31
kix-proxy-1    | 2023/03/12 18:55:10 [notice] 1#1: start worker process 32
kix-proxy-1    | 2023/03/12 18:55:10 [notice] 1#1: start worker process 33
kix-proxy-1    | 2023/03/12 18:55:10 [notice] 1#1: start worker process 34
kix-proxy-1    | 10.97.75.81 - - [12/Mar/2023:18:56:02 +0000] "GET / HTTP/1.1" 400 650 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" "-"
kix-proxy-1    | 10.97.75.81 - - [12/Mar/2023:18:56:02 +0000] "GET /favicon.ico HTTP/1.1" 400 650 "http://10.27.0.27:20001/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" "-"
kix-proxy-1    | 10.97.75.81 - - [12/Mar/2023:19:03:57 +0000] "GET / HTTP/1.1" 400 248 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0" "-"
kix-proxy-1    | 10.97.75.81 - - [12/Mar/2023:19:03:57 +0000] "GET /favicon.ico HTTP/1.1" 400 248 "http://10.27.0.27:20001/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0" "-"
grep: (standard input): binary file matches

Anscheinend kann er doch das Zertifikat nicht laden
kix-proxy-1    | 2023/03/12 18:55:10 [warn] 1#1: "ssl_stapling" ignored, issuer certificate not found for certificate "/etc/nginx/conf.d/ssl/certs/cert1.pem"

Soll das Zertifikat nun doch in crt umgebaut werden?

Tino Voigt

Hallo Synova,

wenn nur SSL verwendet wird (also keine Mischung SSL und Non-SSL) und die Standardkonfiguration so belassen wird (keine anderen Ports angeben), so wäre der Aufruf:


Der Port wäre also weiterhin der 20001.
Die Meldung "issuer certificate not found for certificate" bedeutet, dass das Ausstellerzertifikat nicht gefunden/zugeordnet werden konnte. Eventuell ist für dein Zertifikat ein CA bundle nötig.

Viele Grüße, Tino Voigt

synova

Hallo nochmal,

ich wollte mich noch mal melden. Hatte letzte Zeit viel zu tun und kam gar nicht dazu das Zertifikatsthema zu erledigen.
Aber vor 2 Tagen habe ich das nochmal versucht und es hat geklappt.

Ich habe einfach den certbot installiert, neues LE-Zertifikat erstellt. Diese sind standardmäßig als PEM gespeichert.
Die Zertifikate und key in /opt/kix-on-premise/deploy/linux/proxy/ssl/certs/ kopiert
Dann die /opt/kix-on-premise/deploy/linux/proxy/ssl/ssl.conf so angepasst:

ssl_protocols              TLSv1 TLSv1.1 TLSv1.2;
ssl_ecdh_curve              secp384r1;
ssl_ciphers                "ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AE>
ssl_prefer_server_ciphers  on;
ssl_dhparam                /etc/nginx/conf.d/ssl/dhparams.pem;
ssl_certificate            /etc/nginx/conf.d/ssl/certs/cert1.pem;
ssl_certificate_key        /etc/nginx/conf.d/ssl/certs/privkey1.pem;
#ssl_trusted_certificate    /etc/nginx/conf.d/ssl/certs/ca-bundle/fullchain1.pem;
ssl_session_timeout        10m;
ssl_session_cache          shared:SSL:10m;
ssl_session_tickets        off;
ssl_stapling                on;
ssl_stapling_verify        on;

Alles in /opt/kix-on-premise/deploy/linux/proxy/non-ssl.conf auskommentiert

Und jetzt läufts mit https :)

Ich habe es zuerst versucht in crt umzuwandeln, damit hat es nicht geklappt. Proxy hatte wieder nicht gestartet. Aber mit PEM war es sofort ok.

Vielen Dank für eure Tips

Wenn es jetzt noch möglich wäre, eine Umleitung von http auf https einzurichten, wäre es perfekt. Denn wenn ich die Adresse ohne https:// eingebe, dann bekomme ich "400 Bad Request"