如何使用域名访问Home Assistant
的有关信息介绍如下:
利用加载项Nginx Proxy Manager快速配置,可以实现通过域名HTTPS隐藏端口方式访问Home Assistant管理系统,默认配置后直接访问会提示:400: Bad Request错误信息,本文将介绍如何正确设置Home Assistant去实现通过域名正常访问。
Home Assistant 是一个基于Python 3开发的开源自动化设备控制平台。可以跟踪和控制网络中的所有设备,并实现自动化控制。系统默认使用8123端口进行管理,带端口访问既不方便也不安全。
如果系统只在内部运行,相对还安全些,如果需要对互联网提供服务或需要映射后对互联网提供服务,使用http端口访问时容易被中间人截获数据,拿到API的KEY后就可以远程控制,存在安全风险。
要实现域名访问的方式有多种,如直接在Home Assistant控制台,配置-系统-网络中,配置Home Assistant URL选项即可(访问时带端口)
或者使用加载项Let's Encrypt和NGINX Home Assistant SSL proxy来实现https的访问,但配置相对复杂,本文不做介绍。
本文主要介绍使用Nginx Proxy Manager加载项进行域名访问设置。
首先在配置-加载项-加载项商店里找到Nginx Proxy Manager,安装后启动服务,查看日志如果启动错误,报DB类的错误,可以先安装下加载项MariaDB并进行参数配置。
再重新启动Nginx Proxy Manager,查看运行日志,如图为正常启动信息。
Nginx Proxy Manager的默认管理地址是81端口,直接访问你的服务器ip:81即可访问管理登录界面,输入初始账号admin@example.com,密码changeme(进入后可在后上角用户头像位置点击修改密码)即可登录。
在Host菜单下点击proxy host进入域名管理项,点击右侧Add proxy host添加域名项。域名是需要对外提供服务(需要提前解析到该服务器IP或是映射服务前端IP);Forward Hostname / IP可以直接填写:homeassistant或者是你访问管理台的IP,端口为系统的8123,开启websocket support支持。先不要配置ssl证书,点保存,生效服务后进行http访问测试。
直接浏览器访问刚才填写的域名,如果配置正常就可以直接出现登录界面,说明配置正常,可以到Nginx Proxy Manager中开启SSL证书配置了。
如果访问时出现【400: Bad Request】错误提示,需要在Home Assistant设置中开启反向代功能并设置白名单。
在Home Assistant的配置中设置启用反代功能,并设置IP白名单功能步骤如下:
首先到系统日志中查看请求错误信息,查找到实际请求的IP。
如:A request from a reverse proxy was received from 172.30.33.6,
这条日志中的172.30.33.6为实际请求IP,可以添加到白名单中
然后在文件编辑器中打开:/config/configuration.yaml
添加:
http:
use_x_forwarded_for: true
trusted_proxies:
- 127.0.0.1
- 172.30.33.6
- ::1
保存后,重启
重启后就可以直接使用域名不带端口的方式访问了。
然后就可以在Nginx Proxy Manager的域名配置中,修改配置SSL证书(自动模式),以启用HTTPS访问模式。
也可以提前先准备好证书,设置SSL时选择已有证书:
进入SSL certificates证书管理,右侧的Add SSL certificates可以选择申请Let's Encrypt免费证书和Custom自定义证书(导入现有域名证书)。
证书配置完成后,可以直接使用https模式访问控制台了,包括使用API接口时也可以使用安全模式传输了,增加了系统的安全性。



