Eli*_*Eli 2 apache openssl ssl-certificate
我正在尝试更新我的SSL证书,但有一些问题我可能会遗漏.在我完成以下步骤后,服务器继续使用旧证书,我不知道为什么.在这里,我做了什么:
openssl req -new -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr
复制csr文件内容并将其粘贴到我的ssl提供程序+获得批准.
由于某种原因,我的服务器仍在使用我的旧证书.
是我做错了什么?
好吧你自己想出来但是如果其他人处于相同的情况,这里有一些你可以检查的东西.
首先在本地检查是否有效,方法是在服务器上运行以下openssl命令(这是我们跳过的关键步骤!):
openssl s_client -connect localhost:443
Run Code Online (Sandbox Code Playgroud)
这将显示从Apache向客户提供的证书.如果那不是正确的,那么你就知道Apache配置有问题.如果它是正确的那么下游的东西是一个问题.
在您的情况下,您在负载均衡器处终止SSL并忘记在那里更改证书.另一个问题可能是浏览器缓存SSL证书(重新启动它,Ctrl + F5强制刷新或更好地尝试其他浏览器或第三方网站,如ssllabs.com).
假设它是Apache的问题,那么您需要检查配置以检查证书的所有实例是否已被替换.以下命令将显示所有vhost以及它们配置的配置:
/usr/local/apache2/bin/apachectl -S
Run Code Online (Sandbox Code Playgroud)
或者,只需使用标准的find和grep unix命令在Apache配置中搜索旧证书或新证书:
find /usr/local/apache2/conf -name "*.conf" -exec grep olddomain.cer {} \; -print
Run Code Online (Sandbox Code Playgroud)
这两个命令都假定apache安装在/ usr/local/apache2中,但会根据需要更改路径.
如果所有看起来都很好并且您肯定重新启动了Apache,那么您可以尝试完全停止并重新启动,因为我注意到有时候Apache的优雅重启并不总能获得新的配置.在重新启动Web服务器之前,请检查您是否无法从浏览器进行连接(以确保连接到您认为要连接的服务器)并且使用以下命令关闭进程:
ps -ef | grep httpd
Run Code Online (Sandbox Code Playgroud)
然后终于开始了.
要检查的另一件事是您正在安装的证书是您认为的证书,使用此openssl命令打印出证书详细信息(假设证书是x509格式,但有其他格式的类似命令):
openssl x509 -in domain.cer -text
Run Code Online (Sandbox Code Playgroud)
最后但并非最不重要的是检查Apache日志文件,看看是否有任何错误.虽然希望这意味着没有加载证书而不是旧证书.
| 归档时间: |
|
| 查看次数: |
6575 次 |
| 最近记录: |