![在实时网站上更新 SSL 后,我的 Apache 服务器停止运行](https://linux22.com/image/694773/%E5%9C%A8%E5%AE%9E%E6%97%B6%E7%BD%91%E7%AB%99%E4%B8%8A%E6%9B%B4%E6%96%B0%20SSL%20%E5%90%8E%EF%BC%8C%E6%88%91%E7%9A%84%20Apache%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%81%9C%E6%AD%A2%E8%BF%90%E8%A1%8C.png)
我有一个标准的 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 证书,您需要检查以下事项。
首先确保 httpd 的配置文件不超过 1 个。(我制作了一个备份文件并将
etc/httpd/conf/ssl.conf
其命名为ssl_bkup.conf。我以为这不会被用作配置,但事实确实如此。我应该使用ssl.conf_备份)。您可以检查此命令是否使用了多个配置文件。grep -ir 443 /etc/httpd/conf*
然后通过以下方式检查日志
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)
就我而言,主要问题发生在我将 csr 文件从我的计算机复制到服务器时。ssl 授权机构提供的文件必须移动到我的服务器,因此我没有使用 ftp,而是创建新文件并将 csr 文件的内容复制到服务器上创建的新文件中。在执行此操作时,我弄乱了应该复制的文件的格式。
因为我的 ftp 访问权限非常有限,所以为了正确地将它们上传到服务器上,我将文件上传到在线主机,然后通过 wget 下载到我的服务器。