VirtualHosts 和 SSL,与 Apache 的正确设置相混淆

VirtualHosts 和 SSL,与 Apache 的正确设置相混淆

我读过很多教程,有些没有日期,有些可能已经过时了,有些在一些细节上不清楚……现在我很困惑。花了一整天的时间在这上面。

我正在使用 ubuntu 16.04 / apache2 和一些虚拟主机。

我获得了 SSL 证书,下载了文件并上传了它们。获得了一个捆绑文件和一个 .crt 文件。密钥文件是在此过程中较早生成的。

我猜我的第一个问题是关于虚拟主机的配置文件。一些教程说使用文件:default-ssl.conf,它位于:/etc/apache2/sites-available 中,并将其用作基础。

另一个教程说在主 domain-example.com.conf 文件内包含有关证书的所有详细信息。

那么,一个域是否应该有 2 个文件:用于 :80 端口的文件 main-domain.com.conf,另一个文件用于 :443 端口的 default-ssl.conf?

我的另一个问题是关于一些事物的语法和正确名称。首先,那部分:

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>

VirtualHost _default_需要这样命名吗VirtualHost _default_?还是我必须替换某些东西?该_default_部分看起来很奇怪。

我的另一个问题是关于在配置文件中使用的正确名称:SSLCACertificateFileSSLCertificateChainFile

还遵循了托管公司的教程,其中说虚拟主机的配置文件应该包含服务器的 IP,因此它看起来像(注意部分<VirtualHost 155.131.133.211:80>):

<VirtualHost 155.131.133.211:80>
        ServerAdmin [email protected]
        ServerName sitexample.com
        ServerAlias www.sitexample.com
        DocumentRoot /var/www/html/sitexample.com/

这真的是这样做的吗?因为在整天尝试了不同的方法之后,在某个时候,sitexample.com 不再指向具有正确路径 /var/www/html/sitexample.com/ 的正确网站,而是指向一个标题为“Index Of”的页面,它看起来像主 IP 服务器页面。

答案1

默认值取决于您使用的操作系统/发行版,但为了清楚起见,我建议将它们分开 - 但按站点而不是按协议(因此整个 www.website1.com 将在一个文件中,整个 www.otherwebsite.net 将在第二个文件中)。

您无需指定 VirtualHost 设置,除非您的默认站点对于 HTTP 和 HTTPS 不相同。在这种情况下(使用主机头识别),您需要为每个站点的 DNS 名称设置不同的 VirtualHost,并相应地设置“ServerName”。

SSLCACertificateFile 是您的证书,SSLCertificateChainFile 是捆绑包(来自您的颁发 CA 的证书)。

最后,你可能不想要,因为只有当有人去http://155.131.133.211 - 如果他们使用该站点的 DNS 名称,即使该名称解析为相同的 IP 地址,它也会将您发送到默认站点。

相关内容