如何使用多个 IP 地址设置多个 Apache SSL 站点

如何使用多个 IP 地址设置多个 Apache SSL 站点

如何设置单个 Apache2 配置以在各自的 IP 地址上托管多个 HTTPS 站点?单个 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 端口主机需要该指令才能根据主机头对请求进行路由。

相关内容