Schlagwörter: Docker HTTPS
-
AutorBeiträge
-
-
19. Oktober 2022 um 11:40 Uhr - Views: 790 #14072
Hi,
meine Migration von OTRS6 zu OTOBO ist ja erfolgreich verlaufen. Jetzt läuft das System ein paar Tage und nun wollte ich gern HTTPS aktivieren.
Ich habe dafür:
https://doc.otobo.org/manual/installation/10.1/de/content/installation-docker.html– .env-Datei überschrieben (Punkt 2)
– SSL-Konfiguration NGINX (Punkt 4)
– CERTBOT installiert nach Anleitung (https://www.veuhoff.net/ssl-zertifikat-installieren-mit-certbot-und-lets-encrypt/)Im Anschluss habe ich “sudo reboot” gemacht und nach dem Neustart erhalte ich im Browser (egal ob http oder https):
“404 not found – NGINX”
Kann mir dazu jemand vielleicht helfen?
-
19. Oktober 2022 um 12:08 Uhr #14073
Hallo Toni,
der erste Check wäre ob die Container laufen:
docker-compose ps
Sind die Services otobo_db_1, otobo_elastic_1, otobe_nginx_1, otobo_redis_1 und otobo_web_1 aktiv und haben sie den Status healthy?
Viele Grüße,
Bernhard
-
19. Oktober 2022 um 17:23 Uhr #14079
Hi, hier die Antwort:
otobo@ticket:/opt/otobo-docker$ sudo docker-compose ps
Name Command State Ports
————————————————————————————
otobo_daemon_1 /opt/otobo_install/entrypo … Up (healthy)
otobo_db_1 docker-entrypoint.sh –max … Up (healthy) 3306/tcp
otobo_elastic_1 /bin/tini — /usr/local/bi … Up (healthy) 9200/tcp, 9300/tcp
otobo_redis_1 docker-entrypoint.sh redis … Up (healthy) 6379/tcp
otobo_web_1 /opt/otobo_install/entrypo … Exit 128 -
19. Oktober 2022 um 17:39 Uhr #14080
Hallo Toni,
otobo_web_1 ist der Container der tatsächlich das HTML ausliefert. otobo_nginx_1 kümmert sich nur um HTTPS. Dass der Webserver nicht läuft erklärt jedenfalls den Fehler 404.
Der nächste Schritt ist es otobo_web_1 zum Laufen zu bringen. Zur analyse kann man einfach neu starten mit
docker-compose up 2>&1 | tee compose_up.log
. In der Logdatei sollte dann eine Logeintrag zu finden sein, der erklärt warum der Webserver nicht läuft.Viele Grüße,
Bernhard
-
19. Oktober 2022 um 18:17 Uhr #14081
Das sieht jetzt noch so gut aus:
otobo@ticket:/opt/otobo-docker$ sudo docker-compose up 2>&1 | tee compose_up.log
tee: compose_up.log: Permission denied
The NGINX_ENVSUBST_TEMPLATE_DIR variable is not set. Defaulting to a blank string.
Pulling nginx (rotheross/otobo-nginx-webproxy:latest-10_0)…
latest-10_0: Pulling from rotheross/otobo-nginx-webproxy
Digest: sha256:cec438c8c8a52a18affb91119019196e37b983ef972f2b493bf5e6a94a4fae0f
Status: Downloaded newer image for rotheross/otobo-nginx-webproxy:latest-10_0
otobo_elastic_1 is up-to-date
otobo_redis_1 is up-to-date
otobo_db_1 is up-to-date
Recreating otobo_web_1 … done
otobo_daemon_1 is up-to-date
Creating otobo_nginx_1 …
Creating otobo_nginx_1 … errorERROR: for otobo_nginx_1 Cannot start service nginx: driver failed programming external connectivity on endpoint otobo_nginx_1 (a65f0aba6ad94753c370115dbd9bfb0d4decbf9aa8907bb4bf112e26f98db797): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use
ERROR: for nginx Cannot start service nginx: driver failed programming external connectivity on endpoint otobo_nginx_1 (a65f0aba6ad94753c370115dbd9bfb0d4decbf9aa8907bb4bf112e26f98db797): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use
Encountered errors while bringing up the project. -
19. Oktober 2022 um 18:21 Uhr #14082
Ich habe mal ein sudo docker-compose ps abgesetzt:
otobo@ticket:/opt/otobo-docker$ sudo docker-compose ps
Name Command State Ports
———————————————————————————————
otobo_daemon_1 /opt/otobo_install/entrypo … Up (health: starting)
otobo_db_1 docker-entrypoint.sh –max … Up (health: starting) 3306/tcp
otobo_elastic_1 /bin/tini — /usr/local/bi … Up (health: starting) 9200/tcp, 9300/tcp
otobo_nginx_1 /docker-entrypoint.sh ngin … Exit 128
otobo_redis_1 docker-entrypoint.sh redis … Up (health: starting) 6379/tcp
otobo_web_1 /opt/otobo_install/entrypo … Up (health: starting)-
19. Oktober 2022 um 18:49 Uhr #14084
Hallo,
dass otobo_nginx:1 sich über den Port 80 beschwert ist etwas ungewöhnlich. Ist eventuell in .env die Variable OTOBO_WEB_HTTPS_PORT gesetzt? Wenn ja, dann muss diese Variable auskommentiert werden, damit der Default-Port 443 verwenndet wird.
Viele Grüße,
Bernhard
-
-
19. Oktober 2022 um 18:27 Uhr #14083
Hi,
irgendwas läuft schon auf Port 80 bei Dir. Hast Du auf dem Server noch einen anderen Webserver?
0.0.0.0:80: bind: address already in useSchöne Grüße,
Stefan
Team OTOBO -
19. Oktober 2022 um 18:50 Uhr #14085
Hi,
auf der virtuelle Maschine läuft nichts weiter. Die habe ich vor kurzem erst installiert für Otobo. Wie können wir herausfinden, was es ist?
-
19. Oktober 2022 um 18:55 Uhr #14086
Hi,
führe mal
root> netstat -tulpen
aus, dann siehst Du was da läuft. Entweder es läuft noch ein anderer Container (vielleicht gestartet mit einem anderen User?) oder ein anderer Webserver.
@Bernhard: Ich glaube Du verwechselst das mit dem anderen Foreneintrag, kann das sein? Der NGINX braucht doch immer 80 und 443?
Schöne Grüße,
Stefan
-
19. Oktober 2022 um 19:53 Uhr #14088
@Bernhard: Ich glaube Du verwechselst das mit dem anderen Foreneintrag, kann das sein? Der NGINX braucht doch immer 80 und 443?
Ah, das hatte ich ja selbst eingebaut. Nginx macht ja für Anfragen auf Port 80 den Redirect auf Port 443.
Wenn der Port 80 auf dem Docker Host belegt ist, dann kann man auch ausweichen. Das geht dann wieder über die .env Datei.
# HTTP options
# In the HTTPS case http:// redirects to https://
# Set OTOBO_WEB_HTTP_PORT when the HTTP port is not 80
OTOBO_WEB_HTTP_PORT=81
-
-
19. Oktober 2022 um 18:59 Uhr #14087
otobo@ticket:/etc/nginx/sites-enabled$ sudo netstat -tulpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 26552 812/nginx: master p
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 26588 774/sshd: /usr/sbin
tcp 0 0 127.0.0.1:46121 0.0.0.0:* LISTEN 0 28062 737/containerd
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 101 22584 638/systemd-resolve
tcp6 0 0 :::80 :::* LISTEN 0 26553 812/nginx: master p
tcp6 0 0 :::22 :::* LISTEN 0 26590 774/sshd: /usr/sbin
udp 0 0 127.0.0.53:53 0.0.0.0:* 101 22583 638/systemd-resolve
udp 0 0 10.10.250.5:68 0.0.0.0:* 100 22587 635/systemd-network
udp 0 0 127.0.0.1:323 0.0.0.0:* 0 23257 696/chronyd
udp6 0 0 ::1:323 :::* 0 23258 696/chronyd -
19. Oktober 2022 um 19:55 Uhr #14089
Hallo Toni,
Da hast Du die Lösung;
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 26552 812/nginx: master pEs läuft ein NGINX auf Port 80 auf dem Server. Stoppen und OTOBO wird starten.
Schöne Grüße,
Stefan
-
21. Oktober 2022 um 16:56 Uhr #14104
Hi, sorry das die Antwort so lang gedauert hat.
Vielen Dank im Übrigen für Eure Hilfe schon mal!
Ich habe NGINX mit sudo systemctl nginx stop beendet, richtig? Otobo gestartet habe ich im Verzeichnis /opt/otobo-docker mit sudo docker-compose up?
Wieso muss ich den NGINX eigentlich stoppen? Benötige ich den nicht für den HTTPS-Aufruf von Otobo?
-
21. Oktober 2022 um 17:04 Uhr #14106
Ich korrigiere:
sudo docker-compose up –detach (zum Starten):
otobo@ticket:/opt/otobo-docker$ sudo docker-compose up –detach
WARNING: The NGINX_ENVSUBST_TEMPLATE_DIR variable is not set. Defaulting to a blank string.
Starting otobo_redis_1 … done
Starting otobo_db_1 … done
Starting otobo_elastic_1 … done
Starting otobo_web_1 … done
Starting otobo_daemon_1 … done
Starting otobo_nginx_1 … doneotobo@ticket:/opt/otobo-docker$ sudo docker-compose ps
Name Command State Ports
————————————————————————————
otobo_daemon_1 /opt/otobo_install/entrypo … Up (healthy)
otobo_db_1 docker-entrypoint.sh –max … Up (healthy) 3306/tcp
otobo_elastic_1 /bin/tini — /usr/local/bi … Up (healthy) 9200/tcp, 9300/tcp
otobo_nginx_1 /docker-entrypoint.sh ngin … Restarting
otobo_redis_1 docker-entrypoint.sh redis … Up (healthy) 6379/tcp
otobo_web_1 /opt/otobo_install/entrypo … Up (healthy)otobo@ticket:/opt/otobo-docker$ sudo netstat -tulpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 101 22352 640/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 25235 819/sshd: /usr/sbin
tcp 0 0 127.0.0.1:45383 0.0.0.0:* LISTEN 0 27494 739/containerd
tcp6 0 0 :::22 :::* LISTEN 0 25237 819/sshd: /usr/sbin
udp 0 0 127.0.0.53:53 0.0.0.0:* 101 22351 640/systemd-resolve
udp 0 0 10.10.250.5:68 0.0.0.0:* 100 22539 637/systemd-network
udp 0 0 127.0.0.1:323 0.0.0.0:* 0 24322 715/chronyd
udp6 0 0 ::1:323 :::* 0 24323 715/chronydIch habe in etc/nginx/sites-enabled/default die Datei “default” bearbeitet. Den Port 80 habe ich auskommentiert. Die Kommentierung von Port 443 aktiviert:
server {
#listen 80 default_server;
#listen [::]:80 default_server;# SSL configuration
#
listen 443 ssl default_server;
listen [::]:443 ssl default_server; -
24. Oktober 2022 um 10:40 Uhr #14111
Aktueller Stand:
- docker-compose ps: otobo_nginx_1 steht im Status: Restarting
- sudo docker-compose logs nginx zeigt: (in etwa): failed(SSL:error:02001002:system library:fopen:
No such file or directory:fopen(‘/etc/nginx/cert.pem’,’r’)
error:2006D080:BIO routines:BIO_new_file:no such file)
Ich habe NGINX erstmal de- und re-installiert; die .env (https) gegen eine .http getauscht und kann das System erstmal benutzen. Allerdings noch HTTPS.
-
25. Oktober 2022 um 8:26 Uhr #14118
OK – geschafft!
Da ich in einigen Foren immer Beiträge ohne Lösung sehe (obwohl der TE meist zum Schluss schreibt: “ich habs hin bekommen” aber nicht verrät wie), hier meine Lösung:
Der Zertifikatsfehler “…no such file…” bedeutet: dein Docker-Volume beinhaltet nichts.
Ich habe das Docker-Volume mittels ‘sudo docker volume otobo_nginx_ssl’ gelöscht. Danach habe ich die folgenden Befehle lt. Anleitung abgearbeitet:
sudo docker volume create otobo_nginx_ssl
otobo_nginx_ssl_mp=$(docker volume inspect –format ‘{{ .Mountpoint }}’ otobo_nginx_ssl)
sudo cp /PathToYourSSLCert/ssl-cert.crt /PathToYourSSLCert/ssl-key.key $otobo_nginx_ssl_mpWichtig: der zweite Befehl muss ohne sudo ausgeführt werden, ansonsten funktioniert er nicht.
Im Anschluss habe ich mit ‘sudo docker-compose up –detach’ den Container gestartet und siehe – es läuft!
Auch wenn das ich den Fehler letztlich allein lösen konnte: vielen Dank an die Unterstützer – macht weiter so!
-
25. Oktober 2022 um 8:47 Uhr #14119
Befehslkorrektur: otobo_nginx_ssl_mp=$(docker volume inspect –format ‘{{ .Mountpoint }}’ otobo_nginx_ssl)
Die ‘ sind immer oben.
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.