繁体   English   中英

Apache 2 - AH02311:初始化 mod_ssl 时出现致命错误

[英]Apache 2 - AH02311: Fatal error initialising mod_ssl

我正在尝试在运行 Ubuntu 和 Apache 2 的 DigitalOcean Droplet 上设置 Godaddy SSL 证书。在我正确配置证书后(根据以下文章,我可以看到最佳状态:

我无法运行 Apache,并且出现以下错误:

AH02311: Fatal error initialising mod_ssl

我也看到了这个错误:

SSL Library Error: error:0B080074:x509 certificate routine

这两个都在error.log文件中。

看起来私钥与证书检查不匹配(不确定,因为我没有看到完整的控制台日志)。 我希望证书顺序是正确的,应该是

SSLCertificateFile /etc/apache2/ssl/certificate.crt 
SSLCertificateKeyFile /etc/apache2/ssl/private.key
SSLCACertificateFile /etc/apache2/ssl/intermediate.crt

通常这是一个 apache.conf 配置错误或任何其他配置文件。 做这个:

  1. 清除 Apache 卸载/清除 Apache
  2. 重新加载模块
  3. 重启服务器
  4. apachectl configtest
  5. sudo systemctl restart apache2.service
  6. sudo systemctl status apache2.service

那应该可以解决问题。

我能够通过简单地在 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 warn

或者

httpd -e debug

要为站点 example.com 设置安全虚拟主机,您需要两个块。

一个不安全块,一个不安全块。 如果 80 在其他地方使用,不安全块使用端口 80 或您选择的任何端口。 这通常在 httpd-vhosts.conf 文件中设置。 安全块是不安全块的副本,添加了用于配置 SSL 的命令并使用端口 443。该块通常放置在 httpd-ssl.conf 中 Https-ssl.conf 自动包含在 httpd.conf 中,它是主配置文件. 它包含一个条件子句,用于检测 mod_ssl 模块并在加载模块时加载 httpd-ssl.conf。 这就是为什么一旦启用 mod_ssl 就会出现错误的原因。

我也遇到了同样的问题。
在检查时,我发现这是由于pass.out文件中的密码错误。
更正后解决了,所以我建议你也检查一下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM