vhosts 1xHTTPS 1xHTTP

R

robd_76

Guest
Hallo!

Vielleicht kann mir jemand helfen.

Ich habe einen Apache (v2.1) Server auf dem läuft eine Seite die ich via SSL bereitsellte.
Dies erreiche ich mit den benötogten einstellungen zu SSL (mod) und dem "Listen:443" in der listen.conf.

Klappt auch alles super! Nun will ich noch eine weiter Seite per vhost bereitstellen, die aber nur über HTTP (Port 80) erreicht werden soll. Ich erreiche den Host über den eingerichteten DNS-Namen auch. Soweit alles klar.

Wenn ich nun aber http://"Servername der SSL Seite" angebe komme ich (und das ist nicht gewollt) auf die seite die normalerweise nur übner 443 ereicht werden soll. Das kommt sicher, weil ich doch für die vhost Seite (Port 80) den entsprechenden Eintrag in der Listen.conf gemacht habe. Wie bekomme das weg, bzw. umgehe ich das. Genauso verhällt sich das mit der http Seite, wenn ich https://"Servername der http Port 80 seite" angebe, dann komme ich auf die "Hauptseite" die zwar über 443 erreichbar sein sollte, aber nicht unter diesem Hostnamen.

Kennt jemand ein gutes Howto für solche Konfiguration!?

Ansonsten kann ich auch noch die Configs nachreichen (bin nicht in der Firma zur Zeit)!

Vielen Dank im voraus!
 
Hallo,


versuche es mal mit:
CODE SSLRequireSSL

in der Konfiguration deines VHost. Es kann auch gut sein, dass deine Standard-Konfiguration noch den Zugriff auf das Verzeichnis über HTTP erlaubt, sprich den Konfigurationsdaten, welche Außerhalb deiner VHost stehen.


Näheres dazu findest du auch in der Dokumentation, welche normalerweise mitgeliefert ist.

http://httpd.apache.org/docs-2.1/de/
http://httpd.apache.org/docs-2.1/de/mod/mod_ssl.html



MfG Sascha Ahlers

PS: Ich würde auch keine Alpha-Version benutzen...
 
Danke für Deine Antwort!

Leider bekomme ich das Problem einfach nicht in den Griff!

Wo genau muss ich denn den Eintrag machen?

Wenn ich ihn in die vhost.conf eintrage, bekomme ich beim starten des Apache die Meldung: "SSLRequireSSL not allowed here" ...oder so ähnlich.

Kann man eigentlich das SSLDisable mit der 2.05 (habe doch nicht den 2.1) Version benutzen. Bekomme da ähnliche Meldungen, als ich versucht habe das einzubinden, um den "Port 80" Server nicht via 443 erreichbar zu machen!

Vielen Dank im Voraus!
 
QUOTE (robd_76 @ Mi 22.6.2005, 21:12)[...]
Kann man eigentlich das SSLDisable mit der 2.05 (habe doch nicht den 2.1) Version benutzen. Bekomme da ähnliche Meldungen, als ich versucht habe das einzubinden, um den "Port 80" Server nicht via 443 erreichbar zu machen!
[...]

Also ich habe es in meinen entsprechenden VHost eingetragen und es hat funktioniert. Bist Du Dir auch sicher, dass Du wirklich mod_ssl verwendest und der Apache es geladen hat.
Oder verwendest Du vielleicht Apache-SSL? Der baut nämlich auf SSLeay auf und hat mit mod_ssl nichts zu tun.
Nebenbei, wie hast Du den die VHosts konfiguriert, normalerweise kann man auch den Port angeben auf welchen dieser horchen soll.

MfG Sascha Ahlers
 
Ich würde denken das es mit mod_ssl eingerichtet ist. habe leider nicht sooo viel ahnung. Zumindestens habe ich mich an die Anleitung auf der Suse HP für die Version 9.1, Apache 2.05 und SSL gehalten.

Wie kann ich das denn Prüfen, ob er mod_ssl macht!?

Ansonsten hier nochmal meine vhost.conf

NameVirtualHost service:80
NameVirtualHost otrs:443
<VirtualHost otrs:443>
DocumentRoot.....
ServerName otrs:443
...
...
<VirtualHost service:80>
<VirtualHost Service:80>
DocumentRoot.....
ServerName service:80

Kann ich eigentlich die "Listen" anweisung in die Vhost.conf eintragen und alles in der Listen.conf auskommentieren!? habe das in einigen Foren gesehen, das die das machen! Macht das sinn!?
 
QUOTE (robd_76 @ Do 23.6.2005, 10:50)Ich würde denken das es mit mod_ssl eingerichtet ist. habe leider nicht sooo viel ahnung. Zumindestens habe ich mich an die Anleitung auf der Suse HP für die Version 9.1, Apache 2.05 und SSL gehalten.

Wie kann ich das denn Prüfen, ob er mod_ssl macht!?

[...]


Mit "mod_info" kannst Du es prüfen, die Angaben sollten schon im Script enthalten sein und müssen nur auskommentiert werden. Danach die entsprechende Webseite aufrufen.

Bei Linux Debian Sarge sieht das wie folgt beim Apache 1.33-6 aus:

/etc/apache/httpd.conf

CODE <Location /server-info>
   SetHandler server-info
   Order deny,allow
   Deny from all
   Allow from 127.0.0.1
</Location>


/etc/apache/modules.conf

CODE LoadModule info_module /usr/lib/apache/1.3/mod_info.so



Das gleiche gilt hier auf für den Apache 2.0.x, nur das er die Dateien im Ordner "/etc/apache2" ablegt.



QUOTE Kann ich eigentlich die "Listen" anweisung in die Vhost.conf eintragen und alles in der Listen.conf auskommentieren!? habe das in einigen Foren gesehen, das die das machen! Macht das sinn!?

Das kannst Du machen, letzendlich kannst Du auch das ganze in die httpd.conf schreiben und alle anderen Verweise auf ausgelagerte Konfigurationen dort herauswerfen. Ich selber versuche immer weitesgehend die Debian Vorgaben bei zu behalten. Dort existiert keine "Listen.conf" oder "Vhost.conf", wobei die eine auslagerung der Virtuellen Hosts nicht unbedingt eine schlechte Idee an sich ist.



Vielleicht hilft dir ja diese Beispiel Konfiguration weiter, die IP-Adressen (ich habe nur 1 öffentliche IP-Adresse) habe ich durch "x.x.x.x" und DNS-Namen durch "www.domain1.tld" usw. ersetzt:


CODE
# Port und Listen Angaben duerfen pro Port nur einmal gegeben sein!
Listen 80
Listen 443

Port 80
Port 433

NameVirtualHost x.x.x.x:80
NameVirtualHost x.x.x.x:443


SSLMutex sem
SSLRandomSeed startup builtin
SSLSessionCache none

SSLLog /var/log/apache/ssl_access.log
SSLLogLevel info

<VirtualHost x.x.x.x:80>
  ServerName www.domain1.tld
</VirtualHost>

<VirtualHost x.x.x.x:80>
  ServerName www.domain2.tld
  DocumentRoot /path_to/user_dir/public_html/
  LogLevel error
  ErrorLog /path_to/user_dir/logs/error.log
  CustomLog /path_to/user_dir/logs/access_full.log full

  <Directory /path_to/user_dir/public_html/>
     Options -Indexes IncludesNoExec FollowSymLinks MultiViews
     AllowOverride AuthConfig Limit

# Liste von PHP Einstellungen, welche nicht von Bedeutung sind fuer SSL
     
     <Limit GET POST OPTIONS PROPFIND>
         Order allow,deny
         Allow from all
     </Limit>
     <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
        Order deny,allow
        Deny from all
     </Limit>
  </Directory>
</VirtualHost>

<VirtualHost x.x.x.x:443>
  ServerName www.domain1.tld
  SSLEngine On
  SSLVerifyClient 0
  SSLVerifyDepth 10
  SSLCertificateFile /etc/apache/conf/ssl.crt/www.domain1.tld.cert
  SSLCertificateKeyFile /etc/apache/conf/ssl.key/www.domain1.tld.key
</VirtualHost>



# Dies steht normalerweise in der "/etc/phpmyadmin/apache.conf"
RedirectMatch \/phpmyadmin(\/.*)? https://phpmyadmin.domain1.tld$1

<VirtualHost x.x.x.x:443>
  DocumentRoot /usr/share/phpmyadmin
  ServerName phpmyadmin.domain1.tld
  SSLEngine On
  SSLVerifyClient 0
  SSLVerifyDepth 10
  SSLCertificateFile /etc/apache/conf/ssl.crt/www.domain1.tld.cert
  SSLCertificateKeyFile /etc/apache/conf/ssl.key/www.domain1.tld.key
  SSLRequiredSSL
  <Directory /usr/share/phpmyadmin>
     Options +FollowSymLinks -Indexes
     AllowOverride None
     order allow,deny
     allow from all
     #Hier folgen eigentlich noch PHP-Einstellungen
  </Directory>
</VirtualHost>


Als kurze Erklärung, warum ich bei den Virtuellen Hosts keinen DNS Namen nehme ist recht einfach, es funktioniert einfach besser mit der IP-Adresse, die Domain wird über den "ServerName" angegeben, zudem haben sonst einige ältere Browser Probleme damit.


MfG Sascha Ahlers

PS: Meine alten Lesezeichen finde ich im Moment leider nicht mehr zu diesen Thema.
 
Zurück
Oben