在实时网站上更新 SSL 后,我的 Apache 服务器停止运行

在实时网站上更新 SSL 后,我的 Apache 服务器停止运行

我有一个标准的 amazon ami(由 amazon 创建的),上面安装了 apache。我们需要更新 ssl 证书,我通过以下方式进行了更新这些步骤

我以前做过这个,所以我认为我没有做错什么。步骤基本包括:1) openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr
2) 更新 /etc/httpd/conf.d/ssl.conf 文件。3) 重新启动服务 httpd

但重新启动 httpd 即 sudo service httpd restart 后。服务正常停止,但没有再次启动。这是我收到的错误。

[ec2-user@******* conf.d]$ service httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd: [Tue Dec 06 20:38:28 2016] [warn] module ssl_module is already loaded, skipping
[Tue Dec 06 20:38:28 2016] [warn] _default_ VirtualHost overlap on port 443, the first has precedence
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

这真的很重要,所以如果有人能帮我的话我将不胜感激。谢谢

更新:好的,我设法删除了 mod_ssl 已加载消息。有人能解决这个问题吗?

[ec2-user@****** ~]$ sudo service httpd start
Starting httpd: [Tue Dec 06 21:33:52 2016] [warn] _default_ VirtualHost overlap on port 443, the first has precedence
(98)Address already in use: make_sock: could not bind to address [::]:443
                                                           [FAILED]

答案1

看起来您正在以非特权用户身份运行重新启动命令,因为 httpd 停止失败。您应该使用具有适当特权的帐户运行重新启动命令。


更新:

启动 httpd:[2016 年 12 月 6 日星期二 21:33:52] [警告]默认VirtualHost 在端口 443 上重叠,第一个具有优先权 (98) 地址已被使用:make_sock:无法绑定到地址[::]:443

某些东西仍然绑定到/监听端口 443。看起来您无法停止之前的 httpd 调用。

答案2

我找到了这个问题。如果有人遇到这个问题,由于 SSL 证书,您需要检查以下事项。

  1. 首先确保 httpd 的配置文件不超过 1 个。(我制作了一个备份文件并将etc/httpd/conf/ssl.conf其命名为ssl_bkup.conf。我以为这不会被用作配置,但事实确实如此。我应该使用ssl.conf_备份)。您可以检查此命令是否使用了多个配置文件。

    grep -ir 443 /etc/httpd/conf*

  2. 然后通过以下方式检查日志

    sudo nano var/log/httpd/error_log

    sudo nano var/log/httpd/ssl_log

    sudo nano var/log/httpd/nss_log (nss is similar to ssl)

  3. 就我而言,主要问题发生在我将 csr 文件从我的计算机复制到服务器时。ssl 授权机构提供的文件必须移动到我的服务器,因此我没有使用 ftp,而是创建新文件并将 csr 文件的内容复制到服务器上创建的新文件中。在执行此操作时,我弄乱了应该复制的文件的格式。

因为我的 ftp 访问权限非常有限,所以为了正确地将它们上传到服务器上,我将文件上传到在线主机,然后通过 wget 下载到我的服务器。

相关内容