【问题标题】:Apache 2 - AH02311: Fatal error initialising mod_sslApache 2 - AH02311:初始化 mod_ssl 时出现致命错误
【发布时间】:2017-05-10 16:09:17
【问题描述】:
我正在尝试在运行 Ubuntu 和 Apache 2 的 DigitalOcean droplet 上设置 Godaddy SSL 证书。在我正确配置证书之后(根据以下文章,我可以看到最好的情况:
我无法运行 Apache,并且出现以下错误:
AH02311: Fatal error initialising mod_ssl
我也看到了这个错误:
SSL Library Error: error:0B080074:x509 certificate routine
这两个都在error.log 文件中。
【问题讨论】:
标签:
apache
ubuntu
ssl
https
digital-ocean
【解决方案1】:
看起来私钥与证书检查不匹配(不确定,因为我没有看到完整的控制台日志)。我希望证书顺序是正确的,应该是
SSLCertificateFile /etc/apache2/ssl/certificate.crt
SSLCertificateKeyFile /etc/apache2/ssl/private.key
SSLCACertificateFile /etc/apache2/ssl/intermediate.crt
【解决方案2】:
通常这是 apache.conf 配置错误或任何其他配置文件。这样做:
- 清除 ApacheUninstall/Purge Apache
- 重新加载模块
- 重启服务器
- 做
apachectl configtest
sudo systemctl restart apache2.service
sudo systemctl status apache2.service
这应该可以解决问题。
【解决方案3】:
只需在 apache 下启用 SSL(通过取消注释 httpd.conf 中加载 mod_ssl 和 mod_socache_shmcb.so 的行),我就能够重现这个确切的错误情况。默认的 httpd-ssl.conf 文件包含带有虚拟值的配置示例行。具体来说,此文件底部有一个虚拟主机块,作为模板提供。它包含带有虚拟值的未注释行。 Apache 不会按原样接受这些值。
要对此进行测试,请在 httpd.conf 中取消注释上述模块,打开控制台窗口,转到 apache\bin 文件夹(apache 文件夹将附加适当的版本,如 apache2.37)
然后输入
httpd -t
Apache 将验证您的 .conf 文件并报告致命错误。您将看到的第一个将报告它无法找到 server.crt。如果你用你试图保护 apache 的网站的值填写整个部分,应该停止抛出这些错误。
有关故障排除使用时的更多详细信息
httpd -e 警告
或
httpd -e 调试
要为站点 example.com 设置安全虚拟主机,您需要两个块。
一个不安全的块,一个不安全的块。如果 80 在其他地方使用,不安全块使用端口 80 或您选择的任何端口。这通常在 httpd-vhosts.conf 文件中设置。安全块是不安全块的副本,其中添加了用于配置 SSL 的命令并使用端口 443。此块通常放在 httpd-ssl.conf 中 Https-ssl.conf 自动包含在 httpd.conf 中,这是主配置文件.它包含一个条件子句,该子句检测 mod_ssl 模块并在模块已加载时加载 httpd-ssl.conf。这就是启用 mod_ssl 后立即发生错误的原因。
【解决方案4】:
我也遇到了同样的问题。
在检查时,我发现这是由于 pass.out 文件中的密码错误。
改正后就解决了,建议你也检查一下。