Wie richtet man eine einzelne Apache2-Konfiguration ein, um mehrere HTTPS-Sites jeweils unter ihrer eigenen IP-Adresse zu hosten? Es werden auch mehrere HTTP-Sites unter nur einer einzigen IP-Adresse laufen.
Ich möchte nicht verwendenServer Name Indication (SNI)wie beschriebenHier, und ich beschäftige mich nur mit den wichtigen Apache-Direktiven der obersten Ebene. Das heißt, ich muss nur das Grundgerüst kennen, wie meine Konfiguration aussehen soll.
Das Grund-Setup sieht folgendermaßen aus:
Hosted on 1.1.1.1:80 (HTTP)
- example.com
- example.net
- example.org
Hosted on 2.2.2.2:443 (HTTPS)
- secure.com
Hosted on 3.3.3.3:443 (HTTPS)
- secure.net
Hosted on 4.4.4.4:443 (HTTPS)
- secure.org
Und hier sind die wichtigen Konfigurationsanweisungen, die ich bisher habe. Damit bin ich einer funktionierenden Iteration am nächsten gekommen, aber immer noch nichts. Ich weiß, dass ich nah dran bin, brauche nur einen kleinen Schubs in die richtige Richtung.
Listen 1.1.1.1:80
Listen 2.2.2.2:443
Listen 3.3.3.3:443
Listen 4.4.4.4:443
NameVirtualHost 1.1.1.1:80
NameVirtualHost 2.2.2.2:443
NameVirtualHost 3.3.3.3:443
NameVirtualHost 4.4.4.4:443
# HTTP VIRTUAL HOSTS:
<VirtualHost 1.1.1.1:80>
ServerName example.com
DocumentRoot /home/foo/example.com
</VirtualHost>
<VirtualHost 1.1.1.1:80>
ServerName example.net
DocumentRoot /home/foo/example.net
</VirtualHost>
<VirtualHost 1.1.1.1:80>
ServerName example.org
DocumentRoot /home/foo/example.org
</VirtualHost>
# HTTPS VIRTUAL HOSTS:
<VirtualHost 2.2.2.2:443>
ServerName secure.com
DocumentRoot /home/foo/secure.com
SSLEngine on
SSLCertificateFile /home/foo/ssl/secure.com.crt
SSLCertificateKeyFile /home/foo/ssl/secure.com.key
SSLCACertificateFile /home/foo/ssl/ca.txt
</VirtualHost>
<VirtualHost 3.3.3.3:443>
ServerName secure.net
DocumentRoot /home/foo/secure.net
SSLEngine on
SSLCertificateFile /home/foo/ssl/secure.net.crt
SSLCertificateKeyFile /home/foo/ssl/secure.net.key
SSLCACertificateFile /home/foo/ssl/ca.txt
</VirtualHost>
<VirtualHost 4.4.4.4:443>
ServerName secure.org
DocumentRoot /home/foo/secure.org
SSLEngine on
SSLCertificateFile /home/foo/ssl/secure.org.crt
SSLCertificateKeyFile /home/foo/ssl/secure.org.key
SSLCACertificateFile /home/foo/ssl/ca.txt
</VirtualHost>
Ich bevorzuge es, jede meiner SSL-Sites auf ihrer eigenen IP zu haben, anstatt eine davon auf der primären VHOST-IP zu haben. Alle Links, die eine Standardkonfiguration zeigen, sind mehr als willkommen!
Antwort1
Starten Sie Apache neu, aber laden Sie nicht neu. Neu konfigurierte SSL-Zertifikate werden beim Neuladen nicht geladen.
Lassen Sie die NameVirtualHost ...:443
Anweisungen weg. Sie würden sie nur brauchen, wenn Sie SNI durchführen würden.
Und ja, behalten Sie die NameVirtualHost 1.1.1.1:80
Anweisung bei, Ihre Hosts auf Port 80 benötigen sie, damit Anfragen basierend auf dem Host-Header weitergeleitet werden.