当没有日志时,我应该如何诊断 Apache 在 SSL 加载期间失败?

当没有日志时,我应该如何诊断 Apache 在 SSL 加载期间失败?

我正在尝试在 Apache Web 服务器上安装 SSL 证书和中级证书。为此,我必须安装 mod_ssl(使用a2enmod ssl

首先我进行设置并重新启动 Apache,它可以正常加载。

然后我设置了证书并尝试重新启动 - 这出现在错误日志(error.log)中;

[Mon Oct 24 04:17:48 2011] [error] Init: Unable to read server certificate from file /etc/apache2/ssl.key/ssl-cert.crt

经过一番挖掘,我发现 SSL 证书格式不正确(所有内容都在一行上),我重新复制了主 crt 和中间 crt 的所有内容,然后尝试再次重新启动,再次失败,但这次没有任何内容写入错误日志。

当我运行时,openssl x509 -noout -modulus -in /etc/apache2/ssl.key/ssl-cert.crt我得到了一个返回的模数(在我修复文件中的文本格式之前没有发生过这种事)。

如果我删除<VirtualHost *:443>Apache 配置文件中的该块,它就可以正常启动。

Apache 以 www-data 身份运行

任何帮助将不胜感激。

Linux 信息

cat proc /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.3 LTS"

Apache 信息

apache2 -v
Server version: Apache/2.2.14 (Ubuntu)
Server built:   Sep  1 2011 09:45:41

SSL 信息

-rwxrwxr-x  1 root root 1.8K 2011-10-24 04:19 ssl-cert.crt
-rwxrwxr-x  1 root root 1.6K 2011-10-24 04:19 intermediate.crt
-rwxrwxr-x  1 root root 1.7K 2011-10-10 09:24 ssl-cert.key

网站信息

<VirtualHost *:443>
    ServerName www.mysite.co.uk
    DocumentRoot /srv/www/mysite/public_html
    ErrorLog /srv/www/mysite/logs/error.log
    CustomLog /srv/www/mysite/logs/access.log combined
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl.key/ssl-cert.crt
    SSLCertificateKeyFile /etc/apache2/ssl.key/ssl-cert.key
    SSLCertificateChainFile /etc/apache2/ssl.key/intermediate.crt
</VirtualHost>

答案1

您是否更改了 /root 的权限,或者您是否以 root 身份运行 apache?
验证 Apache 是否有权限读取文件(和下面的文件夹)。

另外,我不会将证书放在 /root 中,而是放在 /etc/apache 中。

答案2

对我来说,解决方案是检查站点特定的错误日志,我之前没有查看过那里,因为我认为它们只有在 Apache 启动并运行时才会发挥作用。

生成的 crt 文件存在一个问题,当我进入正确的日志时,这个问题就变得非常明显。

相关内容