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

 找回密码
 立即注册
查看: 6499|回复: 19

[求助] 【求助】实在是搞不懂 hass 应该如何实现 https 访问

[复制链接]

1

主题

9

帖子

36

积分

新手上路

Rank: 1

积分
36
金钱
27
HASS币
0
发表于 2021-9-19 23:18:09 | 显示全部楼层 |阅读模式


先说一下我的环境:

1. Home Assistant 部署环境:群晖 NAS 中的 Docker
2. Home Assistant 镜像版本:2021年9月19日拉取的 latest 版本
3. 现有网络环境:
群晖 NAS 上的所有服务均通过 https 访问
宽带已有公网 IP
NAS 已配置固定域名(群晖的DDNS)
NAS 已配置 Let's Encrypt 证书
已配置路由器端口转发
已在 NAS 上给 8123 端口配置反向代理

反向代理配置如下:
1.png     傲游截图20210919225216.png

按照我之前的经验,Docker 上部署的 Calibre-Web 和为知笔记,都是这样配置并且实现外网 https 访问的:外网 https 域名加端口——路由器端口转发——群晖反向代理——Docker部署的服务

我也尝试把同样的配置方法套用在 Home Assistant 上,可是行不通,在外网通过 https 域名加端口访问,结果就是 400 报错:"400: Bad Request"

看了各种大神的各种配置方法,我也照着做,修改 hass 配置文件,导入证书,可是都没成功,始终是不会搞,特来求助,

请问基于我部署的 hass 版本,如果只改动 NAS 和路由器的配置,有可能实现外网 https 访问吗?如果行不通,那应该如何正确配置才可以呢?非常感谢!
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

发表于 2021-9-20 00:09:34 来自手机 | 显示全部楼层
本帖最后由 XCray 于 2021-9-20 08:58 编辑

被问过无数次的问题了。群晖这一侧该做的你都做了,hass那一侧需要在configuration.yaml里的http组件部分设置一下
http:
  use_x_forwarded_for: true
  trusted_proxies:
   - x.x.x.x
顺便说一下,群晖的话确实反代是最优做法,维护上也最简单:群晖自身就可以完成DDNS和证书自动更新的工作,比在hass上配置https简单省事多了。
回复

使用道具 举报

25

主题

640

帖子

2913

积分

金牌会员

Rank: 6Rank: 6

积分
2913
金钱
2263
HASS币
40
发表于 2021-9-20 01:03:11 | 显示全部楼层
你已经有Let's encrypt证书了,为什么还要反代呢?
直接配置HA为https,把证书丢进去不就好了吗?
回复

使用道具 举报

1

主题

9

帖子

36

积分

新手上路

Rank: 1

积分
36
金钱
27
HASS币
0
 楼主| 发表于 2021-9-20 11:45:58 | 显示全部楼层
XCray 发表于 2021-9-20 00:09
被问过无数次的问题了。群晖这一侧该做的你都做了,hass那一侧需要在configuration.yaml里的http组件部分设 ...

这个我昨天发帖之前试过了,我感觉我部署的 hass 版本好像和你们的都不太一样啊

我的 automations.yaml 里只有以下内容,根本没有具体代码内容:
a.png

然后我发现了 /homeassistant/.storage 目录下有个没有后缀的“http”文件,打开一看好像有大家讨论过的那些端口、域名之类的代码,

我就试着把你说的反向代理那段代码,按照这个 http 文件里的格式加进去了,试过了还是不行,不知道是哪里不对啊:

b.png


回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

发表于 2021-9-20 12:02:44 | 显示全部楼层
jxst991059 发表于 2021-9-20 11:45
这个我昨天发帖之前试过了,我感觉我部署的 hass 版本好像和你们的都不太一样啊

我的 automations.yaml  ...

就放在configuration.yaml里面。。。

不要自己瞎想啊,软件是很死板的,没那么智能
回复

使用道具 举报

1

主题

9

帖子

36

积分

新手上路

Rank: 1

积分
36
金钱
27
HASS币
0
 楼主| 发表于 2021-9-20 12:23:21 | 显示全部楼层
本帖最后由 jxst991059 于 2021-9-20 12:24 编辑
XCray 发表于 2021-9-20 12:02
就放在configuration.yaml里面。。。

不要自己瞎想啊,软件是很死板的,没那么智能 ...

还是不行啊,是哪个字符或者字段写的不对吗?
外网 https 依然是报错 400: Bad Request

cccc.png
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

发表于 2021-9-20 12:50:10 | 显示全部楼层
jxst991059 发表于 2021-9-20 12:23
还是不行啊,是哪个字符或者字段写的不对吗?
外网 https 依然是报错 400: Bad Request

只需要输入代理服务器的IP地址,不能输https和域名。。。
回复

使用道具 举报

1

主题

9

帖子

36

积分

新手上路

Rank: 1

积分
36
金钱
27
HASS币
0
 楼主| 发表于 2021-9-20 13:13:14 | 显示全部楼层
XCray 发表于 2021-9-20 12:50
只需要输入代理服务器的IP地址,不能输https和域名。。。

这回成功了.....非常感谢啊!实在是太感谢了~~~

顺便吐槽一下这个软件,不明白为什么要设计成这样,配置 https 就给新手来个下马威,不太友好
回复

使用道具 举报

46

主题

1654

帖子

6676

积分

论坛元老

Rank: 8Rank: 8

积分
6676
金钱
5012
HASS币
40
发表于 2021-9-20 13:14:20 | 显示全部楼层
都有公网了为什么还要反代,我目前就是直接域名,旁路ddns,ha配置http证书路径,外网就用外部端口,内网host劫持到ha的ip,这样全站HTTPs访问,我是真没搞懂反代到底是有什么优势
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

1

主题

9

帖子

36

积分

新手上路

Rank: 1

积分
36
金钱
27
HASS币
0
 楼主| 发表于 2021-9-20 13:19:08 | 显示全部楼层
本帖最后由 jxst991059 于 2021-9-20 13:23 编辑
jjcs 发表于 2021-9-20 13:14
都有公网了为什么还要反代,我目前就是直接域名,旁路ddns,ha配置http证书路径,外网就用外部端口,内网ho ...

群晖已经给了我全套的ssl解决方案,只要一个反向代理就能把 http 变成 https,不用维护证书,不用过多维护docker容器内的数据配置,这样多简单
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 06:35 , Processed in 0.770322 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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