跳转至

手工申请域名与网站证书

《HomeAssistant智能家居实战篇》视频

操作步骤

  1. 申请一个免费的duckdns.org子域名
  2. 下载certbot-auto
  3. 申请数字证书
  4. 在homeassistant中配置https访问
  5. 设置frp隧道中443远程端口映射
  6. 更新数字证书

参考

  • 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"

返回课程目录↩