Nextcloud überschreibt apache configuration?

3 Antworten

Nextcloud wird deine Apache Config nicht überschreiben. Vermutlich ist nextcloud einfach der Standard vHost und aus irgend einem Grund trifft die HTTPS Anfrage auf deine andere Seite eben genau diesen vHost.

Ohne deine genaue Konfiguration zu kennen ist hier keine Beantwortung der Frage möglich.

Woher ich das weiß:Berufserfahrung – Berufserfahrung
Mensch4 
Fragesteller
 12.07.2022, 20:05

meine conf für die zweite seite:

<VirtualHost *:80>

        ServerAdmin webmaster@sinus.tk
        ServerName beta.sinus.tk
        ServerAlias www.beta.sinus.tk
        DocumentRoot /var/www/mc/public
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

und für nextcloud:

### DO NOT EDIT! THIS FILE HAS BEEN AUTOMATICALLY GENERATED. CHANGES WILL BE OVERWRITTEN ###

<IfModule mod_ssl.c>
  <VirtualHost *:443>
    DocumentRoot /var/www/nextcloud
    ServerName cloud.sinus.tk
    CustomLog /var/log/apache2/nc-access.log combined
    ErrorLog  /var/log/apache2/nc-error.log
    SSLEngine on
    SSLProxyEngine on
    SSLCertificateFile   /etc/letsencrypt/live/cloud.sinus.tk/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/cloud.sinus.tk/privkey.pem

    # For notify_push app in NC21
    #ProxyPass /push/ws ws://127.0.0.1:7867/ws
    #ProxyPass /push/ http://127.0.0.1:7867/
    #ProxyPassReverse /push/ http://127.0.0.1:7867/
#        <FilesMatch \.php$>
#                SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
#        </FilesMatch>

  </VirtualHost>

  <Directory /var/www/nextcloud/>
    Options +FollowSymlinks
    AllowOverride All
    <IfModule mod_dav.c>
      Dav off
    </IfModule>
    LimitRequestBody 0
    SSLRenegBufferSize 10486000
  </Directory>
  #<IfModule mod_headers.c>
   # Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains"
  #</IfModule>
</IfModule>


0
TheQ86  12.07.2022, 20:09
@Mensch4

Und da haben wir schon das Problem. Deine Config für die zweite Seite greift nur auf Port 80. Deine Config für Nextcloud nur auf Port 443.

JEDE HTTPS Verbindung trifft zwangsläufig auf den nextcloud vHost.

Was du willst sind name based virtual Hosts. Dafür benötigst du die ServerName Direktive und gibst dabei an, unter welchem Servernamen die Konfiguration gelten soll.

Beispiel: https://httpd.apache.org/docs/2.4/vhosts/name-based.html

Dann kannst du mehrmals

<VirtualHost *:443>

und

<VirtualHost *:80>

verwenden.

0
TheQ86  12.07.2022, 20:12
@TheQ86

PS: wie ich sehe hast du ServerNames schon drin. Dann sollte es kein Problem sein für ServerName beta.sinus.tk auch noch ein 443 VirtualHost zu bauen

0
TechPech1984  12.07.2022, 21:04
@TheQ86

und wichtig, kein redirect von 80 auf 443 drinne haben, was meist standardmäßig in der httpd.conf eingetragen ist oder sonst wo .aus sicherheitsgründen . wenn man nextcloud configuriert .

0
Mensch4 
Fragesteller
 12.07.2022, 22:40
@TheQ86

wenn ich das so mache und zusätzlich 443 hinzufüge bekomme ich Fehler 525 und nextcloud und die zweite seite ist down

0
TheQ86  12.07.2022, 22:42
@Mensch4

Ist ein SSL Handshake Failure. Wie sieht denn der 443 vHost für die 2. seite aus?

0
Mensch4 
Fragesteller
 12.07.2022, 22:52
@TheQ86

identisch, nur 80 durch 443 ersetzt

0
TheQ86  12.07.2022, 22:54
@Mensch4

Gut. Und jetzt schau dir mal deinen nextcloud vhost für port 443 an und sag mir - bezogen aufs thema ssl - was fehlt in deinem vhost für die zweite seite?

Für SSL Verbindungen brauchst du natürlich auch SSL Zertifikate, die du konfigurieren musst.

0
Mensch4 
Fragesteller
 12.07.2022, 22:55
@TheQ86

ich habe keine Ahnung was da sonst noch fehlt ich erinnere mich dunkel daran dass in der nextcloud conf irgendwas von ssl steht, aber alles was mit ssl läuft sollte sowieso von cloudflare erledigt werden

0
TheQ86  12.07.2022, 22:59
@Mensch4

Naja, wenn du nen SSL Port am apache konfigurieren willst, dann musst du auch zumindest die Zertifikate konfigurieren. wie in der config beim nextcloud auch.

ansonsten wenn alles über cloudflare läuft, kann cloudflare ja auch die nicht ssl version auf port 80 abrufen.

0

Klingt für mich, als ob du nur einen virtuellen Host für HTTP (Port 80) und nicht zusätzlich für HTTPS (Port 443) in deiner config drin hast. Damit greift dann natürlich für Port 443 die config von NextCloud.

Woher ich das weiß:Berufserfahrung – Entwickle Anwendungen für iOS, iPadOS und macOS beruflich.

dann musst du subdomains nehmen und Names VHost bauen , und ein entsprechendes SSL zertifikat haben was auch subdomains hat.

ergo Named Server und entsprechendes zertifikat . anders gehts nicht.

oder du nutzt einen ganz anderen port dann wirds aber kompliziert mit dem https .

und wichtig, kein redirect von 80 auf 443 drinne haben, was meist standardmäßig in der httpd.conf eingetragen ist oder sonst wo .aus sicherheitsgründen . wenn man nextcloud configuriert .