Wie kann ich ein SSL Zertifikat auf einem Apache2 Server aktivieren (Docker)?

Ich versuche schon über mehrere Tage es irgendwie hinzubekommen, dass der Webserver mit "https" erreichbar ist. Das gültige Zertifikat/ die Dateien habe ich schon:

cert.pem  chain.pem  fullchain.pem  privkey.pem

Jedoch läuft der Apache-Webserver als Docker Image. Ich weiß jedoch nicht, wie ich das SSL Zertifikat hinzufüge, da keine "normale" Apache2 Config vorliegt.

<VirtualHost *:443>
  SSLEngine on
  SSLCertificateChainFile "path to fullchain.pem"
  SSLCertificateKeyFile "path to privkey.pem"
</VirtualHost>

Dies habe ich ich dann via in den Apache2 Server-config importiert. (Wichtig zu wissen ist, dass der Pfad "sites-available" nicht exsestiert.

./configfile.conf:/etc/apache2/sites-available/000-default.conf

Port 80, also http funktioniert auch noch weiter... (80 und 443 sind freigegeben)

Weiß jemand, wie ich ein SSL Zertifikat auf einem Apache2 Server aktiviere, welcher auf Docker läuft / Wie ich die Config Datei richtig lade (denke nämlich nicht, dass diese richtig geladen wird)

Hier nochmal meine docker-compose.yml (unvollständing) :

   web:
    build:
        context: ./php
        dockerfile: Dockerfile
    container_name: php73
    depends_on:
      - db
    volumes:
      - /home/pi/web_dev/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
      - ./php:/var/www/html/
      - ./my_vhost.conf:/vhosts/myapp.conf:ro
      - ./certs:/certs
    ports:
      - 443:443
      - 80:80

Und meine Dockerfile:

FROM php:7.3.3-apache

RUN a2enmod ssl && a2enmod rewrite
RUN mkdir -p /etc/apache2/ssl

COPY /etc/letsencrypt/live/MYIP/*.pem /etc/apache2/ssl/
COPY ../config/000-default.conf /etc/apache2/sites-available/000-default.conf


RUN apt-get update && apt-get upgrade -y
RUN docker-php-ext-install mysqli
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
ADD php.ini /home/pi/web_dev
EXPOSE 80
EXPOSE 443
Computer, Internet, Technik, Apache, SSL, Zertifikat, Apache2, SSL-Zertifikat, Docker, Docker container
Problem mit MySQL wenn ich Apache2 über anderen Port verbinde?

Hallo,

heute habe ich ein kleines Problem,

und bevor ich eine moralpredigt bekomme das Man apache2 nur auf Port 80 und 443 benutzt:

"Ich weiß jedoch ist es sinnvoll den "Standartserver" (80/443) auf das verzeichnis /darf/jeder/sehen zu leiten und z.B. den "Home-Server" (8080) auf das verzeichnis /streng/geheim zu leiten"

Falls sich jetzt jemand Fragt wie ich das gemacht habe:

Terminal öffnen

cd /etc/apache2

nano ports.conf

hinzufügen von "Listen [DEIN_PORT]"

^X danach Y und ENTER

nano apache2.conf

danach unter den verzeichnisen einen Neuen eintrag beginnend mit "<Directory [/dein/streng/geheimes/verzeichnis]>" und anschließend mit den von dir gewünschten optionen versehen

^X danach Y und ENTER

dann in das Verzeichnis sites-enabled wechseln

cd /sites-enabled

danach entweder eine neue datei mit endung ".conf" erstellen oder die "000-default.conf" erweitern, in meinem Fall:

nano 000-default.conf

hinzufügen eines neuen Virtual host

<Virtualhost *:[DEIN_PORT_DER_IN_DER_PORTS_CONF_STEHT]>
DocumentRoot [DEIN_STRENG_GEHEIMES_VERZEICHNIS] 
ServerName STRENG_GEHEIMER_SERVER 
ServerAdmin SAG_ICH_DIR_NICHT@geheime_email.tld 
</Virtualhost> 

vor dem : muss ein * sein also *:

danach noch ein restart

sudo service apache2 restart

und tada "zweiter" Server läuft (evtl musst du [DEIN_STRENG_GEHEIMES_VERZEICHNIS] noch mit chown etc. modifizieren das Apache die nötigen rechte hat um darauf zugreifen zu können)

Jetzt mein Problem:

Unter dem "Standart" Port von Apache (80) wenn ich mit der datei test.php eine Verbindung zum Mysql - Server herstellen möchte funktioniert dies Prima, sobalt ich die Test.php jedoch auf meinen "zweiten" Server unter Port 8081 schiebe so kommt nur "Verbindung fehlgeschlagen: Connection refused" zum vorschein.

Inhalt von test.php:

<?php
    $db_user = "BENUTZER";
    $db_pw = "PASSWORT";
    $db_place = "DATENBANK";
    $db_server = "192.16x.17x.xxx";
    $mysqli = new mysqli($db_server, $db_user, $db_pw, $db_place);
    $state = true;
    if ($mysqli->connect_errno) {
        return "Verbindung fehlgeschlagen: " . $mysqli->connect_error;
        $state = false;
    }
    echo mysql_get_host_info($mysqli);

Info:

den Verwendeten nutzer habe ich von allen rechten bis hin zu "nur" datenbankspezifische Rechte schon alles durchprobiert. Auch habe ich schon von "localhost" auf "%" auf "192.16x.17x.xxx" etc. umgestellt.

Gehe ich auf 192.16x.17x.xxx/phpmyadmin und verwende den Benutzernamen + Passwort kann ich mich Problemlos einlogen (auch wenn ich über 192.16x.17x.xxx:8081/phpmyadmin einlogen möchte)

Ich sehe mich echt nicht raus als währe es gut wenn jmd den fehler erkennen und finden würde, danke schonmal

Computer, Technik, programmieren, MySQL, PHP, Technologie, Apache2, phpMyAdmin, Spiele und Gaming
Alle verschiedenen Minecraft Server arten (Vanilla/Spiogt/Forge/...)?

Hey Leute,

ich bzw. wir sind derzeit daran ein Linux installations Script zu programmieren bzw. es ist vom Aufbau her Fertig, aber wir möchten gerne noch mehr hinzufügen.

Unser Installations Script soll sehr viele Sachen installieren können. Bisher kann man einen:

  • Minecraft Server (Vanilla/Spigot/Bukkit)
  • Teamspeak Server
  • Sinusbot (Musikbot für Teamspeak und Discord / UNENDLICH OFT INSTALLIERBAR!!!!)
  • Bannerbot für Teamspeak
  • Ranksystem für Teamspeak und
  • einen Webserver(Apache2, PHP, MySQL, PHPmyAdmin)

installieren. Wir fügen auch immer mehr Sachen hinzu. Ich wollt z.B. weitere Minecraft Versionen hinzufügen. Bisher gibt es Spigot, Bukkit und Vanilla. Diese gibt es für fast alle Versionen die es gibt. Doch ich möchte gerne noch weitere hinzufügen. Ich kenne bisher noch:

  • Bungeecord
  • Waterfall
  • Sponge
  • Forge
  • Cauldron

Ich weiß das es noch mehr gibt, aber ich weiß nicht (mehr) wie diese heißen. Wisst ihr vielleicht noch ein paar? Wäre echt nice

Spiele, Server, Computer, Teamspeak, Technik, Linux, Installation, Ubuntu, Gaming, Minecraft, Apache, Mc, Minecraft Server, MySQL, PHP, Script, sponge, Teamspeak 3, TeamSpeak Server, Technologie, Webserver, Apache2, Bukkit, Debian, mc-server, phpMyAdmin, Spigot, teamspeak-3-server, Bukkit server, musikbot, BungeeCord, Minecraft Forge Server, Discord, Sinusbot, Spiele und Gaming, Discord Bot
CloudFlare Error 525 SSL handshake failed?

Hallo liebe Community:), gestern habe ich meine Website mit CloudFlare verbunden, und alle Records eingestellt ^^ funkst auch alles. Jetzt hab ich mir bei CloudFlare das "Dedicated SSL Certificate" gekauft, nur dieses kann man nicht downloaden, und der Key wird auch nicht angezeigt ^^. Dann hab ich gelesen das man einfach SSL dort auf Full stellen muss damit es klappt, hab ich getan aber jetzt wenn ich auf mein Server mit https:// gehen möchte bekomm ich folgene Meldung: Error 525 SSL handshake failed Danach hab ich das Problem gegooglet als Ergäbnis kamm raus : - "The origin server does not support or is not configured properly for SNI. - The cipher suites that Cloudflare accepts and the cipher suites that the origin server uses do not match. - The origin server is not configured to use SSL and Full SSL is enabled in the Cloudflare settings." (Ich schätze mal das letztere mal Probleme). Meine Frage ist jetzt wie ich Apache 2 auf SSL Konfiguriere, sodass es ohne Zertifikat funkst^^ Ich gebe jeder Informativen Antwort nen Stern ;)

Server, Linux, Webseite, Apache, SSL, Cloud, Apache2

Meistgelesene Fragen zum Thema Apache2