如题,本问题建立在你的服务器已经正常启动的情况下。
如果你的服务器根本做不到正常启动,那么这个方案可能并不适合你。
这里只提供windows端的配套过程,如果你的os是linux,那么需要自行bing一下证书导入方法。
本文默认你的serverconfig.xml中ServerVisibility配置项的值为2.
问题场景:
测试服务器场景:
某个云服务器
windows server 2016
七日杀版本20.7
本问题常见于家用机,云服务器厂商,例如阿里云,腾讯云,或者一些第三方云或者私有云平台,在私有云和家用机上出现的问题频率较高。不过,这个问题不是一定会发生,一般出现在windows server系列或一些被魔改过的所谓精简系统。
在启动服务器时出现如下报错:
具体警告或错误日志部分如下:
LogEOS: Warning: [LogHttp] 000001A5C806C040: invalid HTTP response code received. URL: https://api.epicgames.dev/sdk/v1/default?platformId=WIN, HTTP code: 0, content length: 0, actual payload size: 0
LogEOS: Warning: [LogHttp] 000001A5C806C040: request failed, libcurl error: 60 (Peer certificate cannot be authenticated with given CA certificates)
以及
Failed to connect to the backend. ServiceName=[SDKConfig], OperationName=[GetPlatformConfigRoute], Url=[<Redacted>]
虽然你最后可以正常的进入到开服成功的结尾
但是你等一会服务端就会开始跳重试和报错提示,服务端在尝试连接epic的api组件一直失败。
这样会导致你的服务器虽然可以通过ip直连登入,但是却无法通过搜索房间的方式进入(注册失败)
而且有可能会出现在ip加入时提示服务器仍处于启动状态的错误。
分析错误说明,
很清楚的可以知道,这问题来源是缺少CA证书。
虽然报错的这个地址你可以通过浏览器正常访问:https://api.epicgames.dev/sdk/v1/default?platformId=WIN
但是这并不意味着你的服务端可以和注册服务器进行正常的通讯。
因为运行游戏服务器可执行文件的 VM/容器不包含 Amazon 根证书颁发机构 (CA) 证书。
Epic Online Services API TLS 证书已由该 CA 颁发,但是因为你的系统里缺少这个证书会导致与 VM/容器的始终或大部分情况下连接失败。
所以理论上,如果你尝试换个其他系统,或者更新系统,这个问题是有可能被解决的,因为新版系统可能已经被厂商预安装了此类证书从而避免此类错误。
解决方案:
去这里下载这个证书
https://www.amazontrust.com/repository/
通过这个链接下载后可以直接看证书安装部分。
有可能存在访问障碍,请自行解决。
RootCA1就可以,下载DER格式,别下错了,其实不放心可以把这几个RootCA2,3,4,5都下载安装。
下载完成后直接导入系统即可。
证书安装
单机安装证书一路下一步就行。
重启服务端,该问题消失,服务器已经可以正常注册并被搜索了。
可用性验证
如何知道是否真的已经注册服务器成功?
仔细观察安装证后你的控制台日志,是否出现下图的文字,出现则已经注册成功。
剑走偏锋(1.0服务端测试EOS改PC会启动无反应)
我懒得安装证书,也不想知道怎么处理这个问题,我只是不想看到这个破烂黄字刷屏的警告。
ip直连就直连了,我不需要让我的服务器可以被搜索到。
(或者服务器属于私人服务器不想让其他人看到,虽然这个要求可以在serverconfig.xml调整,但是让服务器无法被搜索也能达到相同的效果)
打开服务端内的platform.cfg
用什么打开都行,用记事本最方便。
删除
crossplatform=EOS
或删除EOS这几个字母,反正这里不填EOS就行。
想自己留空或者删掉这一行随你。
这样处理会在服务器的启动阶段跳过注册的过程,你也不会看到黄字了,也不会有其他人可以正常搜索到服务器了,你的七日杀服务器唯一的连接途径在经过这个操作后,只剩下ip直连。
想恢复的话把上面那行加回去就行了。
暂无评论内容