apache上的SSL续订证书一直使用旧的证书文件

时间:2015-12-27 09:36:03

标签: apache openssl ssl-certificate

我正在尝试续订我的SSL证书,但是我可能会遗漏一些问题。在我完成以下步骤后,服务器继续使用旧证书,我不知道为什么。 在这里,我做了什么:

  1. 创建新的csr文件(domain.csr)+密钥文件(domain.key)
  2. SELECT

  3. 复制csr 文件内容并将其粘贴到我的ssl提供商+获得批准。

  4. 从中获取5个文件并将其上传到服务器(domain.der,domain.pem ,domain.cer,chain.cer,domain.p7b)
  5. 在apache ssl.conf文件上设置, SSLCertificateFile(domain.cer)SSLCertificateKeyFile(domain.key)。
  6. 重新启动 apache
  7. 由于某种原因,我的服务器仍在使用我的旧证书。

    我做错了什么?

3 个答案:

答案 0 :(得分:5)

嗯,你自己弄清楚了,但万一其他人处于同样的情况,这里有一些你可以检查的事情。

首先在本地检查是否有效,方法是在服务器上运行以下openssl命令(这是我们跳过的关键步骤!):

openssl s_client -connect localhost:443

这将显示Apache向客户提供的证书。如果那不是正确的,那么你就知道Apache配置有问题。如果它是正确的那么下游的东西就是问题。

在您的情况下,您在负载均衡器处终止SSL并忘记在那里更改证书。另一个问题可能是浏览器缓存SSL证书(重新启动它,Ctrl + F5强制刷新或更好地尝试其他浏览器或第三方网站,如ssllabs.com)。

假设它是Apache的问题,那么您需要检查配置以检查已替换的证书的所有实例。以下命令将显示所有vhost以及它们配置的配置:

/usr/local/apache2/bin/apachectl -S

或者只使用标准的find和grep unix命令在Apache配置中搜索旧证书或新证书:

find /usr/local/apache2/conf -name "*.conf" -exec grep olddomain.cer {} \; -print

这两个命令都假定apache安装在/ usr / local / apache2中,但会根据需要更改路径。

如果一切看起来都很好并且你肯定重新启动了Apache,那么你可以尝试完全停止并重新启动,因为我注意到有时候Apache的优雅重启并不总能获得新的配置。在重新启动Web服务器之前,请检查您是否无法从浏览器进行连接(以确保连接到您认为要连接的服务器)并且使用以下命令关闭进程:

ps -ef | grep httpd

然后终于开始了。

要检查的另一件事是您正在安装的证书是您认为的证书,使用此openssl命令打印出证书详细信息(假设证书是x509格式,但有其他格式的类似命令):

openssl x509 -in domain.cer -text

最后但并非最不重要的是检查Apache日志文件以查看是否存在任何错误。虽然希望这意味着没有加载证书而不是旧证书。

答案 1 :(得分:0)

@Barry的好答案。

另一方面是apache不是最前端的Web服务器。来自this对话。 apache前面可能还有其他Web服务器。 像-Nginx。在我们的例子中是AWS ELB。为了更改,我们不得不在ELB中更改证书。

答案 2 :(得分:0)

我们与@Akshay在上面所说的类似。

为了使服务器更新证书,我们必须为Google Cloud Compute Engine负载均衡器运行一些命令:

gcloud compute target-https-proxies update

希望这可以帮助使用GCP托管Apache的人。