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

你如何设置一个Apache2configuration来托pipe多个HTTPS站点,每个站点都有自己的IP地址? 在一个IP地址上也会有多个HTTP站点。

我不想使用这里描述的服务器名称指示(SNI) ,我只关心重要的顶层Apache指令。 也就是说,我只需要知道我的configuration应该看起来的骨架。

基本的设置看起来像这样:

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 

这里是我迄今为止的重要configuration指令,这是最接近我的工作迭代,但仍然没有骰子。 我知道我很接近,只需要一点点的正确的方向。

 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上包含其中的一个。 任何显示标准设置的链接都将非常值得欢迎!

重新启动Apache,不要重新加载。 重新加载时未加载新configuration的SSL证书。

删除NameVirtualHost ...:443指令; 如果你在做SNI,你只会想要他们。

是的,请保持NameVirtualHost 1.1.1.1:80指令,您的端口80主机需要根据主机头来请求路由。