【问题标题】:Apache SSL vhost won't use DocumentRoot but rather uses server webrootApache SSL vhost 不会使用 DocumentRoot,而是使用服务器 webroot
【发布时间】:2020-05-20 10:06:44
【问题描述】:

我有一个使用 DV 通配符证书的 apache 配置。 ssl.conf 配置为将证书用于所有服务器流量。

我的 vhost conf 文件中定义了两个虚拟主机。一个生产虚拟主机和一个开发虚拟主机。 conf文件内容是;

<VirtualHost *:443>
  ServerName www.example.com
  ServerAlias example.com
  ServerAdmin webmaster@example.com
  DocumentRoot /var/www/html/vhosts/prod_example_com/

  <Directory "/var/www/html/vhosts/prod_example_com">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
  </Directory>

  ErrorLog "/var/log/httpd/www.example.com-error_log"
  CustomLog "/var/log/httpd/www.example.com-access_log" common

  #   Enable/Disable SSL for this virtual host.
  SSLEngine on
  SSLCertificateFile /etc/pki/tls/certs/comodo/STAR_example_com.crt
  SSLCertificateKeyFile /etc/pki/tls/certs/csr/www_example_com.key
  SSLCertificateChainFile /etc/pki/tls/certs/comodo/SectigoRSADomainValidationSecureServerCA.crt
</VirtualHost>

<VirtualHost *:443>
  ServerName dev.example.com
  ServerAdmin webmaster@example.com
  DocumentRoot "/var/www/html/vhosts/dev_example_com"

  <Directory "/var/www/html/vhosts/dev_example_com">
    AllowOverride All
    Require all granted
  </Directory>

  ErrorLog "/var/log/httpd/dev.example.com-error_log"
  CustomLog "/var/log/httpd/dev.example.com-access_log" common

  #   Enable/Disable SSL for this virtual host.
  SSLEngine on
  SSLCertificateFile /etc/pki/tls/certs/comodo/STAR_example_com.crt
  SSLCertificateKeyFile /etc/pki/tls/certs/csr/www_example_com.key
  SSLCertificateChainFile /etc/pki/tls/certs/comodo/SectigoRSADomainValidationSecureServerCA.crt
</VirtualHost>

所以,当我转到 https://dev.example.com 时,它工作得很好。但是,当我尝试转到 https://www.example.com 时,它转而转到 /var/www/html 的 Apache 服务器 webroot。

我是否忽略了什么?

提前感谢提供的任何帮助?

【问题讨论】:

  • 我开始确定这个问题与 标签有关。如果我将开发虚拟主机从 更改为 (其中 server_ip = 为我的主机公共 IP,那么开发站点会引发 404 错误。

标签: apache vhosts


【解决方案1】:

我似乎找到了问题所在。在我的特定实例中,vhost.conf VirtualHost 标签都更改为 *:443,但让一切回到正轨的是从我的 httpd.conf 中注释掉 ServerName www.example.com:443 并重新启动 Apache。我希望这对可能遇到同样问题的其他人有所帮助。

【讨论】:

    猜你喜欢
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-22
    • 2016-02-16
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    相关资源
    最近更新 更多