.crt
我有一个运行 Apache2 Web 服务器的 Ubuntu Server 20.04 LTS。正如不同教程所解释的那样,我使用以下命令创建了一个私钥证书文件和一个证书文件:
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>
答案1
网络浏览器中的 500 错误通常在服务器错误日志中有更详细的解释。
您检查过错误日志吗/var/log/apache2/
?
您可能可以在其中一个错误日志中清楚地看到 500 错误原因。
进入该服务器并运行以下命令:
ls -latr /var/log/apache2/
这将以反向更新顺序列出所有文件,并且最近更新的文件将位于列表底部。我喜欢以反向方式列出,因为目录可以包含大量文件,而以反向顺序列出将允许最近修改的文件位于此列表的底部。
我敢打赌它将是一个包含 500 个错误日志文件,其中会对正在发生的事情进行更具体的解释。
仅供参考,根据我的经验,在这种情况下 — — 服务器正常工作,进行了微小的更改,但没有任何效果 — — 通常是配置中或.htaccess
网站代码库中相关文件中的拼写错误。