我们最近更改了证书。于是我就在我们的游戏页面查看了一位玩家的证书,
这是最新的证书。那么什么可能会导致这个问题呢?更改证书后我们应该做些什么吗?
编辑1
CDN 是否缓存了证书?当我们刷新CDN后,一些玩家可以立即连接到游戏。
编辑2
我们发现玩家的浏览器有一个“阻止不安全证书”的选项,当该选项开启时,他无法连接到服务器,当该选项关闭时,他可以连接到服务器。我们导出中间证书并将其发送给播放器进行导入。之后,玩家就可以选择选项来玩游戏了。
编辑3
最后我们发现中间证书在nginx端是正确的,但在服务器端,ca丢失了。添加后,websocket就可以工作了。当我在另一个论坛v2ex问同样的问题时,我找到了一个测试证书链是否完整的好方法。您可以访问该网站并更改您网站的域名和端口。
https://cert.catbox.io/api/v1/queryChain?domain=s41001-ad-tanwan.zlgl.17tanwan.com&port=8085
如果您的服务器正确,您将找到服务器端证书和中间证书。如果找不到中间证书,您需要检查您的服务器配置。
您的服务器https://s41001-ad-tanwan.zlgl.17tanwan.com/仅提供链中的最后一个证书,即服务器的实际证书。
此证书由“RapidSSL TLS DV RSA Mixed SHA256 2020 CA-1”的中间证书签名,自 2020 年 7 月 16 日起有效。 如果客户端有一段时间没有更新其浏览器/操作系统,则他们没有此中间证书,并且他们会将其报告为无效的证书颁发机构。
将中间证书放入证书文件中,应该可以解决问题,因为中间证书是由 DigiCert 根证书签名的,该证书自 2006 年起就出现在游戏中。每个人都有它。
你运行 nginx,对吗? nginx 中的
ssl_certificate
指令接受带有证书链的文件。该文件应首先具有服务器证书,然后是中间证书。