Apache VirtualHost多域多个SSL

时间:2017-01-19 07:44:30

标签: apache ssl

您好我有以下用例,我在远程服务器/ var / www / foobar上有一个应用程序(让我们称之为foobar)我有以下Apache VirtualHost conf

<VirtualHost *:80>
  DocumentRoot /var/www
  # This is to redirect http traffic to https
  Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:443>
  SSLEngine On
  SSLCertificateFile /etc/ssl/certs/example.com.crt
  SSLCertificateKeyFile /etc/ssl/private/example.com.key
  SSLCertificateChainFile /etc/ssl/certs/example.com.bundle.crt

  ServerName example.com:443
  DocumentRoot /var/www/foobar
</VirtualHost>

它的工作一切正常。现在假设我有另一个域example2.com,我希望它指向相同的foobar应用程序。我目前的想法是在下面创建另一个VirtualHost,就像这样

<VirtualHost *:443>
  SSLEngine On
  SSLCertificateFile /etc/ssl/certs/example2.com.crt
  SSLCertificateKeyFile /etc/ssl/private/example2.com.key
  SSLCertificateChainFile /etc/ssl/certs/example2.com.bundle.crt

  ServerName example2.com:443
  DocumentRoot /var/www/foobar
</VirtualHost>

但我想知道这是做这样的事情的正确方法吗?我需要两个域都是“独立的”所以我没有从example2.com永久重定向到example.com

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作,您可以使用服务器别名,此外我也没有看到有2个虚拟主机的错误。

<VirtualHost *:443>
    ServerName example1.com
    ServerAlias example2.com
    SSLEngine on
    SSLCertificateFile  /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/testlink

</VirtualHost>

如果您无法获得证书错误,则可以使用通配符CN创建证书。例如:*.com这将匹配example1.com和example2.com。