如何使用多個 IP 位址設定多個 Apache SSL 站點

如何使用多個 IP 位址設定多個 Apache SSL 站點

如何設定單一 Apache2 配置來託管多個 HTTPS 站點,每個站點都有自己的 IP 位址?單一 IP 位址上還會有多個 HTTP 網站。

我不想使用伺服器名稱指示 (SNI)如上所述這裡,我只關心重要的頂級 Apache 指令。也就是說,我只需要知道我的配置應該是什麼樣子的骨架。

基本設定如下所示:

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

這是迄今為止我擁有的重要配置指令,這是我最接近工作迭代的配置指令,但仍然沒有骰子。我知道我已經很接近了,只是需要朝著正確的方向一點推動。

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>

就其價值而言,我更喜歡讓每個 SSL 站點都有自己的 IP,而不是將其中一個站點包含在主 VHOST IP 上。任何顯示標準設定的連結都將受到歡迎!

答案1

重新啟動 Apache,不要重新載入。重新載入時不會載入新設定的 SSL 憑證。

刪除NameVirtualHost ...:443指令;只有當你在做 SNI 時你才需要它們。

是的,保留該NameVirtualHost 1.1.1.1:80指令,您的連接埠 80 主機需要該指令才能根據主機標頭路由請求。

相關內容