Apache mit SSL und ohne, also eine Seite mit https und http

neo_fox

New Member
Hallo erst mal :)

Ich habe so ein kleines Problem: bis jetzt habe ich Apache mit einer IP-Adresse und mehrere VirtualHost konfiguriert

Also so:
Code:
NameVirtualHost 123.456.7.89
..
<VirtualHost subdomain.site.com >
....
</VirtualHost>

<VirtualHost subdomain2.site.com>
</VirtualHost>

<VirtualHost subdomain.othersite.com>
...
</VirtualHost>

Jetzt wollte ich dass eine der Seiten auch mit SSL Encryption erreichbar ist. Also erst habe ich sowas versucht:

Code:
NameVirtualHost 123.456.7.89
..
<VirtualHost subdomain.site.com >
      ServerName subdomain.site.com
</VirtualHost>

<VirtualHost subdomain.othersite.com>
...
</VirtualHost>   

<VirtualHost subdomain.site.com >
      ServerName subdomain.site.com:443
      SSLCertificateFile /etc/httpd/ssl/cert.crt
      SSLCertificateKeyFile /etc/httpd/ssl/cert.key    
      SSLEngine on
......
</VirtualHost>

Auf dieser Weise war die Seite subdomain.site.com war über https zugreifbar und alle Seiten haben nur 400 - bad request zurück gegeben wenn man sie über http aufgerufen hat.

Ich habe dann ein wenig geforscht und (wenn ich richtig verstanden habe) gelesen, dass eine SSL verschlüsselte Domäne muss eigene IP-Adresse haben.
Dann habe ich eine neue IP bestellt und versucht es so zu lösen

DNS-Eintrag (bei Hosteurope) auf die IP 123.456.7.900 (bei Hetzner) zeigen lassen

Code:
NameVirtualHost 123.456.7.89
..
<VirtualHost subdomain.site.com >
      ServerName subdomain.site.com
</VirtualHost>

<VirtualHost subdomain.othersite.com>
...
</VirtualHost>   

<VirtualHost 123.456.7.900 >
      ServerName subdomain.site.com:443
      SSLCertificateFile /etc/httpd/ssl/cert.crt
      SSLCertificateKeyFile /etc/httpd/ssl/cert.key    
      SSLEngine on
......
</VirtualHost>

Jetzt sind die alle andere Seiten wieder in Ordnung, das heißt über http erreichbar.
Die Seite, die ich absichern wollte subdomain.site.com ist über https erreichbar aber über http bekomme ich wieder nur 400 - bad request

Ich habe mehrere howto's gelesen, das Problem ist dass sie sich alle nur auf zwei fälle beziehen:
- eine Seite mit eigene IP und SSL + plus eine Seite mit eigene IP und ohne SSL
- Alle Seite nur mit SSL

Ich weiß nicht wie ich das machen kann das ich eine IP habe mit mehreren VirtualHost und ohne SSL und andere IP mit SSL. Dabei aber soll die verschlüsselte Seite auch ohne SSL erreichbar sein.
Ist sowas überhaupt möglich ?? Und wenn ja, wie?

Danke im Voraus und Gruß,
Radek
 
Last edited by a moderator:
Du musst in der VHost-Definition den Port mit angeben "<Virtualhost hostname:443>" und bei ServerName musst du ihn weglassen.
 
danke erst mal für Deine Hilfe :)
Du musst in der VHost-Definition den Port mit angeben "<Virtualhost hostname:443>" und bei ServerName musst du ihn weglassen.

Das habe ich schon auch mal probiert bekomme aber dann so eine Fehlermeldung bei Apache start:
Code:
[error] VirtualHost subdomain.site.com:443 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results

Apache: 2.2.3-11.el5.centos

Gruss,
Radek
 
Dem VHost für HTTP willst du natürlich auch ein :80 mitgeben, damit der sich nicht mit dem SSL-VHost überschneidet.
 
Dem VHost für HTTP willst du natürlich auch ein :80 mitgeben, damit der sich nicht mit dem SSL-VHost überschneidet.

Also ich habe jetzt so versucht:

Code:
NameVirtualHost 123.456.7.900
<VirtualHost subdomain.site.com:80>
    DocumentRoot "/var/www/html/host"
    php_admin_value open_basedir /var/www/html/host:/var/lib/php/session:/var/www/phptmp/:/srv/Apache/error/:/usr/share/pear/
    ServerName subdomain.site.com
    ServerAlias www.subdomain.site.com
    CustomLog /var/www/logs/host/access_log common
    ErrorLog /var/www/logs/host/error_log
    ScriptAlias /cgi-bin/ /var/www/html/cgi-bin/
    php_admin_value upload_tmp_dir /var/www/phptmp/
</VirtualHost>


<VirtualHost subdomain.site.com:443>
    DocumentRoot "/var/www/html/host"
    php_admin_value open_basedir /var/www/html/host:/var/lib/php/session:/var/www/phptmp/:/srv/Apache/error/:/usr/share/pear/
    ServerName subdomain.site.com
    ServerAlias www.subdomain.site.com
    CustomLog /var/www/logs/host/access_log common
    ErrorLog /var/www/logs/host/error_log
    ScriptAlias /cgi-bin/ /var/www/html/cgi-bin/
    php_admin_value upload_tmp_dir /var/www/phptmp/
</VirtualHost>

und dann bekomme ich:
Code:
Stopping httpd:                                            [  OK  ]
Starting httpd: [Fri Apr 25 15:19:47 2008] [error] VirtualHost subdomain.site.com:443 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
[Fri Apr 25 15:19:47 2008] [error] VirtualHost subdomain.site.com:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
                                                           [  OK  ]

ich mache wahrscheinlich ganz dummen Fehler aber ich sehe einfach nicht wo :(
 
Code:
NameVirtualHost 123.456.7.900:80
NameVirtualHost 123.456.7.900:443

Die ganzen anderen VHosts für HTTP müssen natürlich auch noch ihr :80 bekommen, damit du keine port- und non-port-VHosts mixt.
 
https auf http verweisen

Ich habe ein ähnliches Problem, ich habe von Server4You ein SSL Zertifikat in Confixx eingerichtet bekommen und wollte nun das meine Domain für die es eingerichtet wurde den gleichen Inhalt anzeigt über http:// als auch über https:// diese Domain wurde auch eine exklusiv IP zugeordnet. Das SSL Zertifikat wurde für die Domain "domainname.de" angelegt. Der eigentliche Inhalt der Domain wird auch angezeigt wenn ich sie über http://doaminname.de aufrufe aber über https:// kommt Seite nicht gefunden.
In meiner httpd.conf steht folgendes:
Code:
<Directory "/srv/www/confixx/html">
AllowOverride all
</Directory>
NameVirtualHost 62.75.158.23:80
<VirtualHost 62.75.158.23:80>
ServerName vs158023.vserver.de
#User confixx
#Group users
DocumentRoot /srv/www/confixx/html
Alias /phpmyadmin /srv/www/htdocs/phpmyadmin
php_admin_value safe_mode Off
php_admin_value safe_mode_exec_dir /srv/www/confixx/bin
php_admin_value upload_tmp_dir /srv/www/confixx/tmp
php_admin_value open_basedir none
ScriptAlias /cgi-bin/ /srv/www/confixx/html/cgi-bin/
CustomLog /var/log/apache2/vs158023.vserver.de_access.log "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\""
ErrorLog /var/log/apache2/vs158023.vserver.de_error.log
</VirtualHost>
MOD: Bitte Code Tags verwenden.

Komischerweise wird hier nirgends meine Exklusiv IP 85.25.33.100 angezeigt.

Kann einer von euch mir sagen welche Datei ich auf meinem Server wie ändern muss damit über diese IP 85.25.33.100 das gleiche wie auf der 62.75.158.23 nur verschlüsselt angezeigt werden kann, bzw. wie ich den vHost ändern kann damit die https://doaminname.de das gleiche wieder gibt wie DomainName.de nur eben verschlüsselt.

Vielen dank schon mal für eure Hilfe.


Chris
 
Last edited by a moderator:
Also ich denke dass es so aussehen sollte:

Code:
<Directory "/srv/www/confixx/html">
AllowOverride all
</Directory>
NameVirtualHost 62.75.158.23:80
NameVirtualHost 62.75.158.23:443

<VirtualHost 62.75.158.23:80>
ServerName vs158023.vserver.de
#User confixx
#Group users
DocumentRoot /srv/www/confixx/html
Alias /phpmyadmin /srv/www/htdocs/phpmyadmin
php_admin_value safe_mode Off
php_admin_value safe_mode_exec_dir /srv/www/confixx/bin
php_admin_value upload_tmp_dir /srv/www/confixx/tmp
php_admin_value open_basedir none
ScriptAlias /cgi-bin/ /srv/www/confixx/html/cgi-bin/
CustomLog /var/log/apache2/vs158023.vserver.de_access.log "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\""
ErrorLog /var/log/apache2/vs158023.vserver.de_error.log
</VirtualHost>

<VirtualHost 62.75.158.23:443>
ServerName vs158023.vserver.de:443
#User confixx
#Group users
DocumentRoot /srv/www/confixx/html
Alias /phpmyadmin /srv/www/htdocs/phpmyadmin
php_admin_value safe_mode Off
php_admin_value safe_mode_exec_dir /srv/www/confixx/bin
php_admin_value upload_tmp_dir /srv/www/confixx/tmp
php_admin_value open_basedir none
ScriptAlias /cgi-bin/ /srv/www/confixx/html/cgi-bin/
CustomLog /var/log/apache2/vs158023.vserver.de_access.log "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\""
ErrorLog /var/log/apache2/vs158023.vserver.de_error.log

    SSLEngine on
    SSLProtocol all -SSLv2
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

    SSLCertificateFile /path/to/cert.crt
    SSLCertificateKeyFile /path/to/key.key
</VirtualHost>

Gruss,
Radek
 
Last edited by a moderator:
vielen dank schon mal für die Hilfe aber es funktioniert leider immer noch nicht.
Sollte ich vielleicht irgendwas im Namserver ändern? Zu Zeit ist das Ziel der Domain mit der IP 85.25.33.100 auch 85.25.33.100.

Muss denn nirgends im vHost diese IP zugewiesen werden?
Ich bin langsam echt rat los.

Grüße, Chris
 
Hallo,

http://example.org und https://example.org auf verschiedene IPs legen geht nicht weil DNS nicht nach Protokollen unterscheidet.

Du mußt also Dein Confixx überreden, daß es für diese Domain für http und https die zweite IP nimmt - und natürlich die zweite IP als IN A für die Domain eintragen.
 
Hab ich auch nicht gemacht vielleicht hab ichs etwas undeutlich beschrieben.
Ich habe für die Domain name.de eine exklusiv IP (eine weitere IP von Server4You bestellt) zu gewiesen damit ich SSL installieren konnte. Die funktioniert auch perfekt nur geht https nicht. Ich möchte das der https Server auf den http Server verweist und den gleichen Inhalt wieder gibt wie wenn ich http:// www. name.de im Browser eingebe. Zur zeit bekomme ich da immer die Meldung Seite nicht gefunden.
Meine httpd.conf liegt im Verzeichnis etc/apache2/ aber irgendwie vermute ich das die Datei keine Wirkung auf den Server hat, denn ich habe Sie eben mal probeweise gelöscht und alles ging noch. Muss man vielleicht was in der confixx_vhost.conf ändern?
 
Last edited by a moderator:
Hallo,

da Du Confixx einsetzt solltest Du versuchen, das über Confixx zu lösen. Wenn das nicht geht muß der von Hand angelegte SSL-Vhost in die confixx_mhost.conf. Leider wird diese von Confixx (selten) überschrieben.
 
Back
Top