更新 Apache SSL 证书

Posted

技术标签:

【中文标题】更新 Apache SSL 证书【英文标题】:Renewing Apache SSL Certificate 【发布时间】:2015-05-15 00:58:31 【问题描述】:

我有一个在端口 443 上运行的 apache 服务器,其 SSL 证书已过期。我今天创建了一个新证书,我想替换它。

我正在运行一台红帽机器。所以我进入 /etc/httpd/conf.d/ssl.conf 并将现有 SSL 证书的路径替换为新的。 重新启动服务器后,不知何故它仍然指向旧证书。

谁能帮我解决这个问题?

提前致谢!

【问题讨论】:

【参考方案1】:

发生的事情可能不止一件事:httpd 服务器的另一个安装是正在运行的服务器,或者有多个 .conf 文件。我会尝试一个广泛的答案。

首先找到apache的config文件夹:

 $ httpd -V
Server version: Apache/2.2.15 (Unix)
 .......
 ....... 
-D DEFAULT_PIDLOG="run/httpd.pid"
-D HTTPD_ROOT="/etc/httpd"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

现在检查以查看在任何位置的任何 .conf 文件中定义的 vhosts 的数量。和/或您可以简单地 grep 用于指定证书的“SSLCertificateFile”并找出它属于哪个vhost 并在那里进行更新。

除非.conf 的主文件指向HTTPD_ROOT 之外的.conf 文件,否则应该会成功。

编辑 1:请记住确保您从上面获得的 pid 与正在运行的 Apache httpd 匹配。

$ cat  /etc/httpd/run/httpd.pid
23799
root@devssl1-m1-ap-->/app/workspace/eclipse/rcmtools/ccc/trunk
$ ps -eaf | grep httpd
root     23799     1  0 Mar06 ?        00:00:04 /usr/sbin/httpd -k start

【讨论】:

感谢您的快速回复,我相信我一切正常。但是,当我尝试重新启动服务器时,我收到以下警告:[warn] default VirtualHost 在端口 443 上重叠,第一个优先。 这意味着您在 443 上有多个虚拟主机。打开配置然后检查。您对 443 的请求将发送到 443 上的另一个虚拟主机。【参考方案2】:

您应该检查您正在访问的虚拟主机的配置文件。也许路径在那里被重新定义。

【讨论】:

以上是关于更新 Apache SSL 证书的主要内容,如果未能解决你的问题,请参考以下文章

解决一次由于SSL证书到期导致的网站不能访问的问题(Nginx,php,Apache)

服务器如何更新ssl证书

如何在 Windows 上更新 SSL 证书?

SAN SSL证书介绍和更新步骤

SAN SSL证书介绍和更新步骤

SSL 证书在 WordPress 更新中通过纯 HTTP(非 SSL)验证失败