Apache SSL vhost 不会使用 DocumentRoot,而是使用服务器 webroot
Apache SSL vhost won't use DocumentRoot but rather uses server webroot
我有一个使用 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, it works great. However, when I try to go to https://www.example.com 时,它会转到 /var/www/html 的 Apache 服务器 webroot。
我是不是忽略了什么?
在此先感谢您提供的任何帮助?
我好像找到问题了。在我的特定实例中,vhost.conf VirtualHost 标记都更改为 *:443,但让一切回到正轨的是从我的 httpd.conf 中注释掉 ServerName www.example.com:443 并重新启动 Apache。我希望这可以帮助可能遇到同样问题的其他人。
我有一个使用 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, it works great. However, when I try to go to https://www.example.com 时,它会转到 /var/www/html 的 Apache 服务器 webroot。
我是不是忽略了什么?
在此先感谢您提供的任何帮助?
我好像找到问题了。在我的特定实例中,vhost.conf VirtualHost 标记都更改为 *:443,但让一切回到正轨的是从我的 httpd.conf 中注释掉 ServerName www.example.com:443 并重新启动 Apache。我希望这可以帮助可能遇到同样问题的其他人。