Let’s Encrypt 可對 domain 做憑證以便後續的功能使用以及遠端登入可以提供更加的安全性。
如果沒有自己的 domain name,可以至 duckdns 免費申請。
Let’s Encrypt 有一個限制就是至少每 30-40 天必須更新憑證。
因此如果所使用的 domain 是從 duckdns 申請的,可以考慮安裝另外一個 addon - Duck Dns
這邊我只安裝 Let’s Encrypt 來做 domain 的憑證。domain 的部份則交由我另外一個地方的主機來做更新。
安裝 Let’s Encrypt
1. Supervisor -> ADD-ON STORE
2. Search Let’s 找到後點進去並點擊 INSTALL
3. 安裝完畢,不要勾選 Start on boot
4. config 依照實際需求修改,設定好後點擊右下 Save
email: abc@example.com domains: - test.duckdns.org certfile: fullchanin.pem # 不要修改 keyfile: privkey.pem # 不要修改 challenge: http # 依照需求可改成 dns,這邊我是使用 http dns: {} # 依照需求修改
- 回到畫面最上面點擊 Start
- 拉到最下面點擊 Refresh ,看一下偵錯訊息,正常的話就表示申請憑證成功
申請成功後,開啟 configuration.yaml,加上以下的部份。
http: base_url: test.duckdns.org:8123 ssl_certificate: /ssl/fullchain.pem ssl_key: /ssl/privkey.pem
重啟 hass,這樣就可以使用 https 連線了,且也不能再使用 http 連線了。
遠端連線方式變成: https://test.duckdns.org:8123
本地端連線就要改成: https://本地端IP:8123
另外建議備份 config/addons/data/ 裡面的 core_letsencrypt 這個目錄,裡面有相關的憑證以及認證訊息。
這個可以在重新安裝時直接把這些資料覆蓋回去,這樣就不用重新申請憑證。
太頻繁申請憑證會暫時無法申請。
由於 Let’s encrypt 只用於申請憑證並沒有定時自己更新的功能。
因此需要加上自動更新的功能。
開啟 automations.yaml,加上以下的部份。
這會定期在每天晚上 11 點重新做憑證更新的動作。
憑證更新的部份會先檢查是否需要更新,如果有需要才會更新,
沒有需要則直接結束。
- id: 'system_lets_encrypt_renewal' alias: "[ System ] Let's Encrypt Renewal" trigger: - platform: time at: '23:00:00' action: - service: hassio.addon_restart data: addon: core_letsencrypt
沒有留言:
張貼留言