我有一个运行 Apache2 Web 服务器的 Ubuntu Server 20.04 LTS。正如不同教程所解释的那样,我.crt
使用以下命令创建了一个私有证书密钥文件和一个证书文件:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/subdomain.hostname.net/ssl.key -out /etc/ssl/certs/subdomain.hostname.net/ssl.crt
但问题是,当我使用.htaccess
文档根目录中的文件强制客户端进行 HTTPS 重定向时,它给了我一个内部 500 错误:
这是我设置的虚拟主机配置文件:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName subdomain.hostname.net
DocumentRoot /home/user/public_html/subdomain.hostname.net
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName subdomain.hostname.net
DocumentRoot /home/user/public_html/subdomain.hostname.net
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/subdomain.hostname.net/ssl.crt
SSLCertificateKeyFile /etc/ssl/private/subdomain.hostname.net/ssl.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
</IfModule>
Web 浏览器中的 500 错误通常在服务器错误日志中有更详细的解释。
你检查错误日志了
/var/log/apache2/
吗?您可能可以在其中一个错误日志中清楚地看到 500 错误原因。
进入该服务器并运行以下命令:
这将以反向更新顺序列出所有文件,最近更新的文件将位于列表的底部。我喜欢反向列出这种目录,因为该目录可以包含大量文件,并且以相反的顺序列出它将允许最近修改的文件位于此列表的底部。
我敢打赌,这将是一个错误日志文件,其中包含 500 个错误日志文件,其中将对正在发生的事情进行更具体的解释。
FWIW,根据我在这种情况下的经验——服务器正常工作,做了小改动,没有任何工作——这通常是
.htaccess
网站代码库中配置或相关文件中的拼写错误。