网络套接字 ERR_CERT_AUTHORITY_INVALID

websocket ERR_CERT_AUTHORITY_INVALID

有些玩家进入我们的游戏时,在所有浏览器中都遇到这个错误

我们最近更改了证书。所以我在我们的游戏页面上查看了一个玩家的证书,

这是最新的证书。那么什么可能导致这个问题呢?更改证书后我们是否应该做些什么?

EDIT1

CDN是否缓存了证书?我们刷新CDN后,部分玩家可以立即连接到游戏。

EDIT2

我们发现玩家的浏览器有一个选项“阻止不安全的证书”,启用该选项后,他无法连接到服务器,禁用该选项后,他可以连接到服务器。我们导出中间证书并将其发送给播放器以供导入。之后,玩家可以选择选项进行游戏。

EDIT3

最后发现中间证书在nginx端就对了,但是在server端,ca不见了。添加后,websocket 就可以工作了。当我在另一个论坛 v2ex 上问同样的问题时,我找到了一个测试证书链是否完整的好方法。您可以访问该站点并使用您的站点更改域和端口。

https://cert.catbox.io/api/v1/queryChain?domain=s41001-ad-tanwan.zlgl.17tanwan.com&port=8085

如果你的服务器是正确的,你会找到服务器端证书和中间证书certificate.If你找不到中间证书,你需要检查你的服务器配置。

您的服务器 https://s41001-ad-tanwan.zlgl.17tanwan.com/ 仅提供链中的最后一个证书,即服务器的实际证书。

此证书由“RapidSSL TLS DV RSA Mixed SHA256 2020 CA-1”的中间证书签名,自 2020 年 7 月 16 日起有效。 如果客户有一段时间没有更新他们的 browsers/operating 系统,他们没有这个中间证书,他们报告这是一个无效的证书颁发机构。

将中间证书放入证书文件,应该可以解决问题,因为中间证书是由DigiCert根证书签署的,从2006年开始在游戏中。每个人都有它。

你运行nginx吧? nginx 中的 ssl_certificate 指令接受带有证书链的文件。此文件应首先具有服务器证书,然后是中间证书。