我正在尝试更新我的SSL证书,但有一些问题我可能会遗漏.在我完成以下步骤后,服务器继续使用旧证书,我不知道为什么.在这里,我做了什么:
创建新的csr文件(domain.csr)+密钥文件(domain.key)
openssl req -new -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr
复制csr文件内容并将其粘贴到我的ssl提供程序+获得批准.
从中获取5个文件并将其上传到服务器(domain.der,domain.pem,domain.cer,chain.cer,domain.p7b)
在apache ssl.conf文件上设置,SSLCertificateFile(domain.cer)SSLCertificateKeyFile(domain.key).
重启 apache
由于某种原因,我的服务器仍在使用我的旧证书.
是我做错了什么?
好吧你自己想出来但是如果其他人处于相同的情况,这里有一些你可以检查的东西.
首先在本地检查是否有效,方法是在服务器上运行以下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日志文件,看看是否有任何错误.虽然希望这意味着没有加载证书而不是旧证书.