vhost funktioniert nicht

Bobcation

Cadet 3rd Year
Registriert
Juli 2016
Beiträge
50
Hallo zusammen,
ich habe mir schon einiges durchgelesen, doch leider konnte ich bisher keine Lösung finden.

Ich habe zwei Domains, einmal "gerophima.de" und einmal "yukara.de".
Die "gerophima.de" Domain soll auf das /www/roland Verzeichnis zugreifen und die "yukara.de" auf /www/sarah/.

Seitdem ich auf SSL mit Let'sEncrypt umgestielt habe funktioniert dies leider nicht mehr.

Die Domain "yukara.de" greift auf das allgemeine "www" Verzeichnis zu, da ich dort alle Ordner sehe. Bei der "gerophima.de" Domain funktioniert dies, er greift auf sein Verzeichnis zu. Zumindest denke ich das, er zeigt mir die Meldung "Not Found" obwohl eine Webseite zu sehen sein müsste.
Vor allem funktioniert es nur mit "www.gerophima.de" ohne das www komme ich auf das www Verzeichnis.

Zudem würde ich gerne wollen, dass nur die "https:" Version aufrufbar ist. Ich bin mir nicht sicher ob dies funktioniert.

Hier die Vhost:
http://pastebin.com/RrnWm9JX
http://pastebin.com/qT6MNUsZ

Habe die Server version: Apache/2.4.10 (Debian).

Ich hoffe ihr könnt mir helfen. :/

MFG
Bobcation
 
Wo ist denn der DocumentRoot-Eintrag hin, der auf das Wurzelverzeichnis deines VHosts zeigt?

Das sollte der Grund sein, warum du nur einen 404er bekommst.
 
Erstmal danke für die Antwort. :)

Ich habe immer wieder verschiedene Einstellungen probiert, dadurch ist wohl die Zeile verschwunden. Jetzt bekomme ich bei "www.gerophima.de" ein "Forbidden". Dies liegt wohl an der neuen Apache Version wie ich gelesen habe. Man solle "Require all granted" in die vHost schreiben. Doch leider hat dies keine Wirkung bei mir. :/

Und unter "gerophima.de" kommt leider immer noch das www Verzeichnis, genau wie bei der anderen (yukara) Domain.
 
Wie sieht denn deine vhost-config jetzt aus?

Btw.: Kannst die auch hier im Forum und nicht auf pastebin posten :)
 
CryNickSystems schrieb:
Wie sieht denn deine vhost-config jetzt aus?

Btw.: Kannst die auch hier im Forum und nicht auf pastebin posten :)

Jetzt habe ich mir extra einen Account dort erstellt. :P


Da die beiden vhost fast identisch sind poste ich mal nur eine. Ich habe bisschen rum probiert mit verschieden Einstellungen, momentan habe ich diese so gelassen.

Code:
<VirtualHost *:443>
      SSLEngine On
      SSLCertificateFile /etc/letsencrypt/*****
      SSLCertificateKeyFile /etc/letsencrypt/*****
      ServerName gerophima.de
      ServerAlias www.gerophima.de
      ServerAdmin roland@gerophima.de
      DocumentRoot var/www/roland
     <Directory /var/www/roland/>
      Options Indexes FollowSymLinks Multiviews
      Require all granted
 </Directory>
</VirtualHost>
 
Mach doch mal aus
Code:
DocumentRoot var/www/roland
ein
Code:
DocumentRoot /var/www/roland

EDIT:
Du kannst auch mal in die Logdateien vom Apachen reingucken - dann solltest du näheres zum 403 Forbidden erfahren.
 
Ah vielen dank. Unter "https://www.gerophima.de/" wird nun meine Webseite angezeigt.

Unter https://www.yukara.de/ werde ich zu https://yukara.de/ weitergeleitet. Was ich seltsam finde.
Und wenn ich einfach nur "yukara.de" oder "gerophima.de" eingebe wird immer noch das www Verzeichnis angezeigt. Und ich verstehe nicht wieso. Ich finde dazu auch keinen Fehler im Log.
 
Welche vhosts hast du denn noch konfiguriert? Ich vermute, du hast irgendeinen "Fallback"-Virtual-Host drin.

Kenne mich mit Apache nicht wirklich aus, aber irgendeinen Grund muss es ja geben.

Kann es sein, dass du "Options +Indexes" standardmäßig an hast und für die HTTP-Varianten keinen vhost-Eintrag hast und er somit einfach den Index anzeigt?
 
Ich habe für jede Domain eine vHost.

Code:
<VirtualHost *:443>
      SSLEngine On
      SSLCertificateFile /etc/letsencrypt/live/yukara.de/fullchain.pem
      SSLCertificateKeyFile /etc/letsencrypt/live/yukara.de/privkey.pem
      ServerName yukara.de
      ServerAlias www.yukara.de
      ServerAdmin sarah@gerophima.de
      DocumentRoot /var/www/sarah
     <Directory /var/www/sarah/>
      Options Indexes FollowSymLinks Multiviews
      Require all granted
 </Directory>
</VirtualHost>

Kann natürlich sein, ich habe selbst nicht viel Ahnung. Wollte dies als Hobby machen und irgendwie muss man sich das ja beibringen. Habe viel dazu gelesen und auch Anleitungen befolgt. Ohne das SSL Zertifikat, funktionierte alles. Doch seit der Umstellung ist alles komplizierter geworden. :/
 
Hast du auch eine Weiterleitung von Port 80 auf 443 (HTTP zu HTTPS) gemacht?

Wenn du die Seite nur mit www.foobar.tld aufrufst, dann lauscht der Webserver normalerweise auf Port 80, wenn dieser aber nicht weiß, dass auf 443 weitergeleitet werden muss, dann kommt es oft zu obigen Verhalten, dass das Standardverzeichnis angesteuert wird.
 
Zuletzt bearbeitet:
Definiere dann doch extra <VirtualHost>-Knoten für Port 80 / HTTP
 
pfd schrieb:
Hast du auch eine Weiterleitung von Port 80 auf 443 (HTTP zu HTTPS) gemacht?

Wenn du die Seite nur mit www.foobar.tld aufrufst, dann lauscht der Webserver normalerweise auf Port 80, wenn dieser aber nicht weiß, dass auf 443 weitergeleitet werden muss, dann kommt es oft zu obigen Verhalten, dass das Standardverzeichnis angesteuert wird.

Ich habe versucht in die vhost ein "Redirect permanent" einzufügen, doch dies hatte keine Wirkung. Wahrscheinlich hatte ich einen Fehler drin. Wie sollte diese denn aussehen?


CryNickSystems schrieb:
Definiere dann doch extra <VirtualHost>-Knoten für Port 80 / HTTP

Ich bin mir nicht sicher ob ich diesen brauche, aber ich habe auch wenig Ahnung davon. Brauche ich diesen wenn meine Webseite nur über HTTPs erreichbar sein soll?
 
Nein, dann brauchst du den eigentlich nicht.

Die Frage ist dann nur, wie der Apache reagiert, wenn er auf Port 80 eine Anfrage bekommt.

Du könntest auch einfach Port 80 eingehend mit iptables / ufw blocken.

Ich empfehle dieses Tutorial für ufw: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-14-04 (ufw ist quasi eine Art Wrapper, der dir das Leben mit iptables einfacher macht).

Ich habe auf all meinen Seiten eine Weiterleitung von http auf https aktiv, genauso wie von www auf "ohne www"

EDIT:
Guck mal hier: https://askubuntu.com/questions/184791/how-to-disable-non-ssl-connection-on-apache-2-2

Was steht bei dir in der ports.conf drin? Der Tipp mit der Firewall gilt trotzdem, dass du nur das freischaltest, was du an Ports auch brauchst (443, 22, etc.)
 
Das mit der Firewall werde ich mir auf auf jeden Fall genauer ansehen wenn ich Zeit habe. :)


Meine ports.conf schaut so aus:
Code:
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

NameVirtualHost *:80  
Listen 80

<IfModule ssl_module>
	Listen 443
</IfModule>

<IfModule mod_gnutls.c>
	Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
 
Dann mach doch mal das, was in dem Stackoverflow-Thread vorgeschlagen wird:

Kommentiere
Code:
NameVirtualHost *:80  
Listen 80
aus.

Dann sollte dein Apache auf Port 80 nicht mehr reagieren bzw. den gar nicht erst binden, ergo sollte es eine Netzwerk-Zeitüberschreitung im Browser geben.
 
Habe ich getan und wie du sagtest kommt jetzt die Netzwerk-Zeitüberschreitung.

Jetzt bräuchte ich doch die Weiterleitung oder? Oder wie bekomme ich es hin dass er die HTTPS Version aufruft? Meine Weiterleitung hat nie funktioniert. :/
 
Wie hast du es denn versucht? Wenn du eine Weiterleitung haben willst, dann muss in der ports.conf natürlich die Zeilen einkommentiert, also aktiv sein.

Dann würde ich in die vhost-Config das schreiben: https://wiki.apache.org/httpd/RedirectSSL (2. Beispiel)
 
Ob ich eine Weiterleitung brauche, weiß ich nicht genau. Die HTTP Version soll ja zu der HTTPs Version, naja "weiterleiten". Ich hatte es mit verschiedene Möglichkeiten probiert. Unter anderem mit dem Eintrag " Redirect permanent" in der Vhost. Es soll ja nur noch die HTTPs Version verfügbar sein. Und wenn ich die normale HTTP Version aufrufe, soll er halt die verschlüsselte Version aufrufen.
 
So ein kleines Update. Alles funktioniert nun soweit wie ich möchte. Ich habe eine .htaccess mit der Weiterleitung eingerichtet.

Code:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

Doch leider leitet er immer nach "gerophima.de/html/" weiter. Ich weiß nicht wo dieses "/html/" her kommt
 
Ich würde, unabhängig von deinem jetzigen Problem, davon abraten, die .htaccess für diese Weiterleitung zu "missbrauchen":
https://httpd.apache.org/docs/2.4/rewrite/avoid.html (1. Fall)

Scheint mir, als würde "irgendwie" gerophima.de bereits ein /html hintendran enthalten - keine Ahnung warum.

Mach das doch, wie im Link vorgeschlagen, mit separaten <VirtualHost>-Blöcken.
 
Zurück
Oben