『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 9482|回复: 4

[已解决] ha内部http+外部https的解决方案

[复制链接]

46

主题

641

帖子

4411

积分

元老级技术达人

积分
4411
金钱
3740
HASS币
120
发表于 2020-6-17 00:31:27 | 显示全部楼层 |阅读模式
本帖最后由 evantalk 于 2020-6-17 22:55 编辑

目的:局域网运行http,外网运行https,因为0.11版本有这个配置了 tempsnip.png

用frp反代理,文档说支持https2httphttps://github.com/fatedier/frp#enable-https-for-local-http-service

配置文件如下
[hass]
type = https
custom_domains = 我的域名

plugin = https2http
plugin_local_addr = 192.168.2.18:8123
plugin_crt_path = ./frp.crt
plugin_key_path = ./frp.key
plugin_host_header_rewrite = 192.168.2.18
plugin_header_X-From-Where = frp


效果出乎意料:
登录界面正常
捕获.PNG
登录以后一直转圈圈,不知何故
捕获1.PNG

PS:  API接口通过域名是能获取HA数据,就是网页打不开,真是怪了

日志有一条,因该是frp在https2http转换过程中不支持websocket
2020-06-17 01:19:31 WARNING (MainThread) [homeassistant.components.websocket_api.http.connection.140554523649552] Disconnected: Did not receive auth message within 10 seconds


多加一步:本地先https代理后再用frp穿透,本以为很复杂,但是有官方插件帮助,非常简单,小白都会。
image-18.png
就是这货,看说明简直相见恨晚:
Sets up an SSL proxy with NGINX web server. It is typically used to forward SSL internet traffic while allowing unencrypted local traffic to/from a Home Assistant instance.



配置也很简单,只需要修改四个地方

image-19.png

FRP服务端配置文件
[common]
bind_port = 7000

# need for https,端口可以换其他的
vhost_https_port = 8123

#auth token
token  = 密码


FRP客户端配置文件

[common]
#指定公网服务器地址
server_addr = 外网服务器ip
server_port = 7000

token = 密码

[ssl_hass]
type = https
custom_domains = <span style="color: rgb(112, 112, 112); font-family: &quot;Noto Sans&quot;, sans-serif; font-size: 16px; text-align: center; white-space: pre-wrap; background-color: rgb(255, 255, 255);">NGINX中一样的域名</span>
local_port = 9443
local_ip = 192.168.2.18
remote_port = 8123



回复

使用道具 举报

34

主题

709

帖子

4693

积分

论坛元老

Rank: 8Rank: 8

积分
4693
金钱
3974
HASS币
50
发表于 2020-6-17 09:57:49 | 显示全部楼层
不懂,,把frp证书和hass的ssl证书都换成统一的呢.
回复

使用道具 举报

30

主题

493

帖子

4795

积分

论坛元老

佑桑

Rank: 8Rank: 8

积分
4795
金钱
4287
HASS币
156

教程狂人

发表于 2020-6-17 10:07:17 | 显示全部楼层
homeassistant.components.websocket_api.http.connection
frp 能否支援 websocket 反代?
ASRock H370 PRO4, 48GB, 8TBx3 + 2TBx3
ESXi 6.7 + Ununtu + Docker + HASS.IO -> Homeassistant OS
(Home Assistant Supervised 官方文件)
回复

使用道具 举报

46

主题

641

帖子

4411

积分

元老级技术达人

积分
4411
金钱
3740
HASS币
120
 楼主| 发表于 2020-6-17 11:33:44 | 显示全部楼层
chinyaolin 发表于 2020-6-17 10:07
homeassistant.components.websocket_api.http.connection
frp 能否支援 websocket 反代?

ha的web界面有两种协议,http和websocket,看了frp项目的https2http插件只能过https协议,不能过wss协议,所以想一步到位搞定全站对内http,对外https+外网穿透,用frp估计没戏。

在ha上直接启用https,然后用frp穿透是可以的。

评分

参与人数 1金钱 +12 收起 理由
咸味土豆 + 12 膜拜大神!

查看全部评分

回复

使用道具 举报

3

主题

35

帖子

238

积分

中级会员

Rank: 3Rank: 3

积分
238
金钱
203
HASS币
0
发表于 2020-12-22 16:17:55 | 显示全部楼层
0.11版是不是版本过于老了?又迭代了一百多个小版本了     现在早就是0.119版本了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 07:33 , Processed in 0.188298 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表