本地局域网站点使用Google OAuth无需公网域名的可行方案咨询
可行方案
方案1:私有TLD域名+自签SSL证书
该方案完全不需要公网资源,所有配置均在局域网内完成,可完全满足谷歌OAuth的验证规则:
- 修改所有访问设备的
/etc/hosts文件,将原有单级名mywebsever替换为带私有顶级域的格式,例如mywebsever.internal(.internal是ICANN官方保留的专用私有域名后缀,不会与公网域名冲突,符合谷歌OAuth对TLD结构的要求),仍指向树莓派本地IP。 - 在树莓派上通过openssl生成自签SSL证书,执行命令:
openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 3650 -nodes -subj "/CN=mywebsever.internal" - 配置树莓派上的Web服务启用HTTPS,加载生成的
server.key和server.crt证书文件。 - 将生成的
server.crt证书导入所有访问设备的系统信任根证书存储,避免浏览器报安全提示。 - 登录Google Cloud Platform控制台,将JavaScript授权来源修改为
https://mywebsever.internal即可正常使用。
注意:不要使用公网已存在的顶级域后缀(例如
.com、.net)作为私有域名后缀,避免和公网正常域名解析冲突。
优化方案(可选)
如果你的局域网路由器支持自定义本地DNS解析,可以直接在路由器后台添加mywebsever.internal到树莓派IP的解析规则,无需逐个修改访问设备的/etc/hosts文件,适配多设备访问场景。
内容的提问来源于stack exchange,提问作者Lionel B
相关产品推荐
相关产品推荐

