steamcommunity 302后端使用caddy,在生成所有配置文件后可直接迁移到Linux/Macos环境下使用
1.首先要在Windows环境 / Wine下 运行 steamcommunity 302 并在设置里打勾需要开启的功能,然后正常启动服务
2.前往caddy/release页下载caddy对应系统版本 (下载tar.gz/zip的压缩包格式的)
https://github.com/caddyserver/caddy/releases/tag/v2.6.2
下载后解压得到caddy
2.编辑 steamcommunity_302.caddy.json
批量替换,将端口替换为443
注意:此处端口7119为随机生成,全局进行批量替换为443即可
3.将302目录下的文件与caddy一同拷贝到Linux/Macos (一共是6个文件)
steamcommunityCA.pem
steamcommunityCA.key
steamcommunity.key
steamcommunity.crt
steamcommunity_302.caddy.json
caddy
记得hosts也要复制!
hosts文件里的对应条目,均为#S302结尾
4.导入根证书 steamcommunityCA.pem
由于不同发行版导入方式不同,这里仅给出参考方法,应该都需要root权限
Centos:cp steamcommunityCA.pem /etc/pki/ca-trust/source/anchors/steamcommunityCA
.crt
运行/bin/update-ca-trust
Ubuntu:cp steamcommunityCA.pem /usr/local/share/ca-certificates/steamcommunityCA.crt
运行update-ca-certificates
其他: 由于一些证书策略变动,若以上步骤导入后依然出现证书错误,则需要使用nss进行导入
安装nss包之后使用certutilcertutil -A -d sql:~/.pki/nssdb -n "Steamcommunity302" -t C,, -i "steamcommunityCA.pem"
certutil -A -d sql:~/.var/app/com.valvesoftware.Steam/.pki/nssdb -n "Steamcommunity302" -t C,, -i "steamcommunityCA.pem"
Macos:
https://www.cnblogs.com/reachos/p/12201389.html
5.文件到位并写入对应hosts后,运行
#赋予caddy执行权限chmod +x caddy
#启动./caddy run --config steamcommunity_302.caddy.json --adapter caddyfile
之前想直接用阿里云挂ASF,结果试了很多次没成功。最后用ping测了一下,果然是墙的原因,好久没用国内云都要忘了这回事了。然后就想到了steam302 steam++,果然有教程。现在已经设置成功,感谢教程!
佬,如果不用443端口行不行,这个和我nginx冲突了
监听自己需要的IP
例如nginx监听127.0.0.2
302监听127.0.0.1
别有其中一个监听0.0.0.0(所有接口)
遇到个有点诡异的问题。
LinuxMint20.3,运行caddy_2.6.2,已导入证书
cp steamcommunityCA.pem /usr/local/share/ca-certificates/steamcommunityCA.crt
和对应hosts,且已运行update-ca-trust,用curl测试可以通过caddy访问store.steampowered.com和steamcommunity.com(curl -v看到的域名解析都是127.0.0.1),所以导入的证书应该是没有问题的。Steam可以登录,游戏,下载更新,能加载好友列表。然而Steam客户端不能访问store.steampowered.com和steamcommunity.com,Steam客户端提示
Invalid SSL Certificate
。我只有火狐浏览器,没有其他使用系统证书的浏览器,目前只用了curl和wget测试,这俩是可以通过caddy正常连接的。难道Steam客户端不从/usr/local/share/ca-certificates/读取证书了吗?
前面steam deck也遇到一样的问题。不过升级到测试版再降回来就正常了,感觉是某个版本不读系统证书。你试试先把steam更新到beta或者测试分支
切换到Steam Beta Update(1707518866)Build Date: Feb 10,问题依旧。
切换回Stable Client(1705108172) Build Date: Jan 13,问题依旧。
我怎么隐约觉得这可能是chrome58的锅。但是研究了半天目前也没找到啥好方法,steam的内部浏览器把chrome://给屏蔽了,进不去。搜了一下
chrome /usr/local/share
好多答案都提到得用certutil解决。目前我还没尝试。感觉不像的.steam的chrome应该是110版才对.前面steamdeck遇到也试过certutil没解决
我这Steam Stable Client进游戏后shift+tab调出浏览器进个能看UA的网址,显示chrome58。
如果certutil也没辙的话那我现在也没思路了。
难道Linux下用的不一样..windows是110内核的
“Mozilla/5.0 (X11; Linux x86_64; Valve Steam GameOverlay/1705108172) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36”
这是Linux Mint 20.3(基于Ubuntu20.04)下Steam Stable的UA。
“Mozilla/5.0 (X11; Linux x86_64; Valve Steam Client/default/0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5414.120 Safari/537.36”
这是Linux Mint 20.3(基于Ubuntu20.04)下Steam Beta Update的UA。另外测试版这个内置浏览器默认底色不是白色的,未声明默认底色的网页都变得极其诡异。
“Mozilla/5.0 (X11; Linux x86_64; Valve Steam GameOverlay/1705108172) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36”
这是Linux Mint 20.3(基于Ubuntu20.04)下Steam Stable的UA。
“Mozilla/5.0 (X11; Linux x86_64; Valve Steam Client/default/0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5414.120 Safari/537.36”
这是Linux Mint 20.3下Steam Beta Update的UA。另外测试版这个内置浏览器默认底色不是白色的,未声明默认底色的网页都变得极其诡异。
跨度这么大的吗..85直接跳到109….
“我又是怎么把85看成58的”
我之前遇到过一个类似的问题,我觉得应该和你的问题是一样的,就是SSL证书的问题,在网页打开github也是打不开,显示证书不安全。不过我用的是edge浏览器,我在网上找到了一个解决办法,就是从edge的设置–导入证书–颁发机构 中导入steamcommunityCA.pem并且信任,解决了这个问题
应该和作者用火狐浏览器导入这个证书并信任是一样的操作
之后我就能正常使用了
完全不相关
目前似乎可以先安装edge. 设置证书. 然后后再卸载就可以修复.
你也想要在 Linux 里安装 Edge 吗?
这都是些什么疯子。
设置完证书就可以卸载了, 重点是提供解决办法嘛
我在linux下尝试使用caddy的start来让它在后台运行,并用stop结束它
我猜测执行stop时应当指定address为localhost:443
当我执行sudo ./caddy -stop –address localhost:443时,发现失败了,返回如下
sudo ./caddy stop –address localhost:443
2024/02/13 03:34:24.630 WARN failed using API to stop instance {“error”: “caddy responded with error: HTTP 400: Client sent an HTTP request to an HTTPS server.\n”}
Error: caddy responded with error: HTTP 400: Client sent an HTTP request to an HTTPS server.
请问我是否做错了什么?我该如何操作?
Error: caddy responded with error: HTTP 400: Client sent an HTTP request to an HTTPS server.
监听的是https。而你发送的请求是http
大佬,最后启动报了个Segmentation fault (core dumped)
搞不定了
试试用root运行呢?