Apache-2.4
Apache SSL vhost 不會使用 DocumentRoot,而是使用伺服器 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>時,效果很好。但是,當我嘗試訪問<https://www.example.com時,它會轉到 /var/www/html 的 Apache 伺服器 webroot。
我忽略了什麼嗎?
提前感謝提供的任何幫助?
我似乎找到了問題所在。在我的特定實例中,vhost.conf VirtualHost 標籤都更改為 *:443,但讓一切回到正軌的是從我的 httpd.conf 中註釋掉 ServerName www.example.com:443 並重新啟動 Apache。我希望這可以幫助其他可能遇到同樣問題的人。
重新啟動 apache 應該會給你提示
ssl_error_log
,你的第一個配置文件建議你忘記了結束標籤</VirtualHost>
,儘管在這種情況下 apache 甚至不應該啟動(語法錯誤)。