[Apache] 2 Domains, eine IP, ein DocumentRoot

Rain

Lieutenant
Registriert
Mai 2003
Beiträge
704
Hallo,

mein Wissen bzgl. Webserver ist SEHR beschränkt, folgendes soll aber umgesetzt werden:

2 Domains (bla1.de und bla2.de) sind auf eine IP geschaltet. Das dort vorhandene Webprojekt soll von beiden Domains erreichbar sein. Erschwerend hinzu kommt, dass beide über SSL laufen sollen (2 Zertifikate sind vorhanden).

Ich bekomm die Konfiguration im Apache nicht hin :(

Ich vermute, dass in der httpd-ssl.conf bei den VirtualHost Einträgen die Einstellungen vorgenommen werden müssen. Im Prinzip müsste auf den gleichen DocumentRoot 2 ServerName verweisen.. das funktioniert so aber nicht. Auch:

Code:
<VirtualHost ip>
    DocumentRoot "/bla/"
    ServerName bla1.de
    ServerAlias bla2.de
</VirtualHost>

geht nicht. Bei google find ich auch seit 2 Stunden Nichts Passendes.

Hilfe!! :/
 
so sollte es gehen:

Code:
NameVirtualHost *:80

 <VirtualHost *:80>
 ServerName www.domain.tld
 ServerAlias domain.tld *.domain.tld
 DocumentRoot /www/domain
 </VirtualHost>

 <VirtualHost *:80>
ServerName www.otherdomain.tld
 DocumentRoot /www/domain
 </VirtualHost>

Ist schon lange her, dass ich daran "rumgespielt" habe...
 
Hier ein Beispiel aus meiner Apache Konfiguration:
Code:
<VirtualHost *:80>
    ServerName www.domain.de
    ServerAlias domain.de
    DocumentRoot /var/www/users/ordner

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
          AllowOverride None
          Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
          Order allow,deny
          Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName www.domain2.de
    ServerAlias domain2.de.de subdomain.domain2.de
    DocumentRoot /var/www/users/ordner

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Du siehst, ich habe zwei VirtualHost, beide laufen auf Basis von Port 80, akzeptieren jede IP und linken auf den selben Ordner. Du könntest das ganze vermutlich in nur einem VirtualHost mit extra ServerAlias abbilden. Genau weiß ich es jedoch nicht, ich verwende, wie du siehst, zwei VirtualHosts.

Wie es mit SSL aussieht, kann ich nicht sagen. Das könnte jedoch ein Problem sein, da deine Anwendung für jede Domain das entsprechende Zertfikat ausliefern müsste?
 
andy_0 schrieb:
Wie es mit SSL aussieht, kann ich nicht sagen. Das könnte jedoch ein Problem sein, da deine Anwendung für jede Domain das entsprechende Zertfikat ausliefern müsste?

Exakt. Ich hab allerdings grad das noch gefunden: https://kkaefer.com/journal/apache-2-mit-ssl/

Code:
<virtualhost *:443>
    DocumentRoot D:/webroot
    SSLEngine On
    SSLProtocol All -SSLv2
    SSLCertificateFile conf/ssl/localhost.cert
    SSLCertificateKeyFile conf/ssl/localhost.key
    ServerName localhost
</virtualhost>

Ich teste mal und melde mich, danke euch!
 
was passiert denn, wenn du apache neu startest (service httpd restart oder service apache2 restart)?
Gibts da Fehler?
Genau. Du kannst für jeden vhost eigene Zertifikate vergeben. Ich würde für jeden vhost eine eigene *.conf anlegen und diese mit include in der hautpconf adden
 
und eine weiterleitung von domain1 auf domain2 kommt nicht in frage?
ggf. mit mod_proxy ? dann sieht der user das auch nicht.
 
Eigentlich gibts für diesen Zweck den Ordner /etc/apache2/sites-available/ (und den Ordner /etc/apache2/sites-enabled/, der sich automatisch füllt)
In die sites-available kommt für jeden VHost eine separate Conf rein (z.B. example.com.conf), evtl. auch aufgeteilt in eine für http und eine für https. Danach sagt man nur hübsch "a2ensite example.com" und noch "service apache2 restart", schon läuft das Ding.

P.S.: 2 Domains mit identischem Content sind SEO-technischer Selbstmord.
 
Zuletzt bearbeitet:
@zerocool: fehler kommt nicht, nur ein [warn], dass tls nicht von allen clients unterstützt wird
(Nach Recherche sind ältere Internet Explorer betroffen -> unrelevant)

@mercsen: weiterleitung ist leider nicht möglich, für beide seiten gibts auch unterschiedliches design
(User von Seite 1 sollen im besten Fall nicht merken, dass es auch noch Seite 2 gibt, ganz schön doof, aber so lautet der Auftrag)

@daaron: suchmaschinen sind egal, ist sowieso nix öffentliches. den ordner sites-available gibts in meiner apache-installation leider gar nicht. derzeit hosten wir die seiten noch auf windows mit xampp (ich weiß, ich weiß. wir sind leider im bereich webhosting nicht so erfahren und haben auch leider keine zeit uns in linux einzuarbeiten :( wir sahen bis jetzt allerdings auch noch keinen großen nachteil, abgesehen von der potenziellen angreifbarkeit, welche aber ständig gegeben ist --> ich weiß um besserung in der angelegenheit bescheid! ;) )

Leider gehts jedenfalls immernoch nicht. Je nachdem welcher Virtualhosts Eintrag zu erst in der httpd-ssl.conf steht, von dieser url wird auch das zertifikat erkannt, die andere adresse sagt nur "unsichere seite". Dreht man die Einträge in der httpd-ssl.conf um, dann geht die andere seite.

hier mal ein auszug unserer einträge:

Code:
NameVirtualHost *:443

 

<VirtualHost *:443>

 

    DocumentRoot "ROOT"

    ServerName url1



    ServerAlias url1

    ErrorLog "logs/error.log"

    <IfModule log_config_module>

        CustomLog "logs/access.log" combined

    </IfModule>

    

    SSLEngine on

    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

    

    SSLCertificateFile "root_to_crt.crt"

    SSLCertificateKeyFile "root_to_key.key"

     

    CustomLog "logs/ssl_request.log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

                

                        <Directory ROOT>

                AllowOverride none

               Order Allow,Deny

                Allow from all

        </Directory>

                

</VirtualHost>                            

 

<VirtualHost *:443>

 

    DocumentRoot "ROOT"

    ServerName url2



    ServerAlias url2

    ErrorLog "logs/logurl2.log"

    <IfModule log_config_module>

        CustomLog "logs/logurl2.log" combined

    </IfModule>

    

    SSLEngine on

    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

    

    SSLCertificateFile "root_to_crt2.crt"

    SSLCertificateKeyFile "root_to_key2.key"

     

    CustomLog "logs/logurl2.log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

                

                        <Directory ROOT>

                AllowOverride none

                Order Allow,Deny

                Allow from all

        </Directory>

                

</VirtualHost>

Das ganze .log - gedöns mal am besten ignorieren (ausser da is n fehler drin, der die Funktionalität verhindert). Was ist falsch?

Apache Server 2.2.17
 
Zurück
Oben