So richten Sie mehrere Apache SSL-Sites mit mehreren IP-Adressen ein

So richten Sie mehrere Apache SSL-Sites mit mehreren IP-Adressen ein

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 ...:443Anweisungen weg. Sie würden sie nur brauchen, wenn Sie SNI durchführen würden.

Und ja, behalten Sie die NameVirtualHost 1.1.1.1:80Anweisung bei, Ihre Hosts auf Port 80 benötigen sie, damit Anfragen basierend auf dem Host-Header weitergeleitet werden.

verwandte Informationen