手工申请域名与网站证书
操作步骤
- 申请一个免费的
duckdns.org
子域名 - 下载certbot-auto
- 申请数字证书
- 在homeassistant中配置https访问
- 设置frp隧道中443远程端口映射
- 更新数字证书
参考
-
duckdns官网
https://www.duckdns.org/
-
Let’s Encrypt官网
https://letsencrypt.org
-
certbot官网
https://certbot.eff.org/
-
certbot-auto下载地址
https://dl.eff.org/certbot-auto 或 https://github.com/certbot/certbot/raw/master/certbot-auto
-
申请证书命令
sudo certbot-auto certonly --standalone --preferred-challenges http-01 --http-01-port 8123 --email your@email.address -d examplehome.duckdns.org
-
增加证书文件访问权限命令
sudo chmod 755 /etc/letsencrypt/live sudo chmod 755 /etc/letsencrypt/archive sudo chmod +r /etc/letsencrypt/archive -R
-
HomeAssistant中证书的配置样例
http: ssl_certificate: /etc/letsencrypt/live/examplehome.duckdns.org/fullchain.pem ssl_key: /etc/letsencrypt/live/examplehome.duckdns.org/privkey.pem
-
更新证书命令
sudo certbot-auto renew --standalone --preferred-challenges http-01 --http-01-port 8123 sudo certbot-auto renew --standalone --preferred-challenges tls-sni-01 --tls-sni-01-port 8123(已失效)
注:
-
以上命令执行前需要先停止hass以释放8123端口。
-
其中的
http-01
用于远程80端口映射到本地的8123端口的情况,tls-sni-01
用于远程的443端口映射到本地8123端口的情况(tls-sni-01
更新方式已经不再被支持)。你也可以使用非8123端口,这样就不用事先停止home assistant了,但需要额外构建通讯隧道。 -
命令中可以中加入
--pre-hook
和--post-hook
参数用于指定更新前自动执行的停止hass和更新后启动hass的命令,如
--pre-hook "sudo systemctl stop home-assistant@pi"
-