SSL
如果您将 Webgl 构建托管在 HTTPS 域上,您将需要使用安全的 Web 套接字协议 (wss://)。WSS 需要在您的 Mirror 游戏服务器上设置 SSL 证书,用于基本场景,或者在您的网关服务器上用于“反向代理”场景。您还需要确保在传输选项中设置了“Client Use WSS”。
在接下来的部分中,我们将演示如何使用 Let's Encrypt 为域 simpleweb.example.com 获取 SSL 证书。
预设置(Pre-Setup)
您需要一个域名和编辑 DNS 记录的能力
一个 DNS 记录应指向您的 Webgl 游戏客户端(通常托管在端口 443 上)
一个 DNS 记录应指向您的 Mirror 游戏服务器
在云中设置虚拟机: 如何设置 Google 云服务器
获取证书(Get Cert)
按照这里的指南进行操作:
https://letsencrypt.org/getting-started/ https://certbot.eff.org/instructions
找到适用于您服务器版本的说明。以下是适用于 Ubuntu 18.04 LTS (bionic) 的链接
https://certbot.eff.org/instructions?ws=nginx&os=ubuntubionic
对于第 7 步的指令
填写详细信息后,您将获得如下结果
simpleweb.example.com 应为您的域名
创建 cert.pfx(Create cert.pfx)
要创建一个 SimpleWebTransport 可以使用的 pfx 文件,请在 /etc/letsencrypt/live/simpleweb.example.com/ 文件夹中运行以下命令
设置密码
您将被要求输入密码;您可以设置一个密码或留空。您可能需要成为超级用户才能执行此操作。
注意:目前 Unity 随附的 Mono 版本无法加载由 OpenSSL 版本 3 生成的 pfx 文件。您需要在上述 openssl 命令中添加 -legacy 命令行参数以生成兼容的 pfx 文件。
使用 cert.pfx
您可以将 cert.pfx 文件复制到服务器文件夹中,或者创建一个符号链接。
使用移动
使用符号链接
创建 cert.json 文件
创建一个 cert.json 文件,SimpleWebTransport 可以读取
在 ~/path/to/server/ 文件夹中运行以下命令
如果在创建证书时将密码留空:
如果在创建证书时设置了密码 "yourPassword":
运行您的服务器
在 cert.json 和 cert.pfx 位于游戏服务器文件夹中时
然后使服务器文件可执行
要在活动终端中运行,请使用
要在后台运行,请使用
要使游戏服务器在您关闭 ssh 会话后继续运行,请使用
nohup的意思是:可执行文件将在您关闭 ssh 会话后继续运行,&符号的意思是:您的服务器将在后台运行
如果您创建了符号链接,可能需要使用
sudo运行
连接到您的游戏
通过将游戏客户端连接到游戏服务器,使用 Unity 编辑器作为游戏客户端或使用部署的 webgl 构建作为游戏客户端,测试一切是否正常工作。
在主机名字段中设置您的域名(例如 simpleweb.example.com),然后启动客户端。
调试 SSL(Debugging SSL)
要检查您的 pfx 文件在 Unity 之外是否正常工作,您可以使用 pfxTestServer.js (src)。 (Debugging SSL)
最后更新于
这有帮助吗?