虚拟主机中有多个 SSL 证书吗?

虚拟主机中有多个 SSL 证书吗?

我有一台运行 Ubuntu 12.04.3 LTS 的服务器和两台运行 Ubuntu 14.04.1 LTS 的服务器,它们都具有 SSL 证书。所有服务器都是 bitnami 堆栈,因此它们的 apache2 配置文件位于:

/opt/bitnami/apache2/conf/bitnami

要求是针对两个带有和不带有域名的域名提供多个域名证书,www.所以实际上总共有 4 个。

website.com
www.website.com
website.co.uk
www.website.co.uk

最后,virtual-host _default_:443Apache2 bitnami.conf 文件的部分为所有这些域设置了一个证书。但是证书提供商建议使用两个证书而不是一个(因为这样更便宜)。

  • 当两个域只有一台物理服务器时,Apache2 conf 中是否可以有两个证书?

  • 如果是这样,那么您如何设置虚拟主机来处理两个证书?

答案1

每个虚拟主机只能有一个证书。但这是免费软件。只需为每个域添加一个单独的虚拟主机并为其提供自己的证书,无需任何成本(而且开销很小)。

除非内容有变化,否则我会更进一步,选择一个域名作为主域名,并让所有其他域名重定向到该域名。这通常是让搜索引擎满意的最佳方式(人们自然传播的链接将指向同一个域名)。

无论如何,这会产生三个虚拟主机:

  • 您托管的那个。例如www.website.com
  • 一个域名与另一个域名相同,但使用备用前缀(例如website.com)重定向到主域名,例如website.com。使用相同的证书。
  • 每个替代 TLD(捕获 www 和无 www)一个用于重定向。

单个多域证书具有一些好处:

  • XP 及更早版本上的 IE8 及更早版本不支持 SNI,这意味着每个证书都需要一个合法的 IP 地址。多域证书可以轻松解决这个问题,因为您只需为每个请求抛出相同的证书即可。
  • 证书过期时需要更新的内容较少。

不过,这通常不足以抵消其成本。而且它们是固定的,所以如果您需要添加另一个域名,您必须支付全额费用。获取大量 IPv4 地址仍然更便宜。

即使拥有多域证书,我仍然会使用三个虚拟主机重定向到一个域。

答案2

每个域名可以有一个证书。要实现这一点,您需要为每个域名创建虚拟主机文件。我们以 website.com 为例。

  1. 您可以在 找到默认的 SSL 模板文件/etc/apache2/sites-available/default-ssl

  2. 我们将创建一个新文件/etc/apache2/sites-available/website.com

  3. 编辑新文件以匹配以下示例:

    <IfModule mod_ssl.c>
    <VirtualHost 192.168.0.100:443>
        ServerAdmin [email protected]
        ServerName website.com:443
        DocumentRoot /var/www/website.com
    
        <Directory />
            Options FollowSymLinks
            AllowOverride None
        </Directory>
    
        <Directory /var/www/website.com>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
        </Directory>
    
        SSLEngine on
        SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    </VirtualHost>
    </IfModule>
    
  4. 然后激活新文件。sudo a2ensite website.com

  5. 重新加载 Apachesudo service apache2 reload

相关内容