我正在尝试在 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 文件存在一个问题,当我进入正确的日志时,这个问题就变得非常明显。