我正在尝试续订我的SSL证书,但是我可能会遗漏一些问题。在我完成以下步骤后,服务器继续使用旧证书,我不知道为什么。 在这里,我做了什么:
SELECT
复制csr 文件内容并将其粘贴到我的ssl提供商+获得批准。
由于某种原因,我的服务器仍在使用我的旧证书。
我做错了什么?
答案 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的人。