跳到主要内容

TLS安全传输

Frigate内置的NGINX服务器支持TLS证书。默认情况下,Frigate会生成自签名证书用于8971端口。本系统设计上兼容各类证书管理工具,方便用户自由选择。

应用场景

多数情况下Frigate运行在反向代理后方,由代理统一管理TLS证书。此时您可能需要:

  • 在代理配置中允许自签名证书
  • 或直接禁用Frigate的TLS功能

但若Frigate运行在独立设备或直接暴露在公网时,建议配置有效证书。

禁用TLS

在配置文件中添加以下内容即可禁用TLS:

tls:
enabled: False

证书配置

基本配置

通过绑定挂载或Docker卷加载证书文件到指定路径:

frigate:
volumes:
- /证书目录路径:/etc/letsencrypt/live/frigate:ro

目录结构要求:

  • 私钥文件必须命名为privkey.pem
  • 证书文件必须命名为fullchain.pem

Certbot用户注意

由于Certbot使用符号链接,需额外挂载archive目录:

frigate:
volumes:
- /etc/letsencrypt/live/frigate:/etc/letsencrypt/live/frigate:ro
- /etc/letsencrypt/archive/frigate:/etc/letsencrypt/archive/frigate:ro

证书自动更新

Frigate会每分钟比对证书指纹,当检测到变更时自动重载NGINX配置。使用有效证书时,建议将8971端口映射到443端口:

注意

如果您在中国大陆地区,家用宽带运营商会屏蔽掉80443等端口,这种情况建议换为其他端口,例如1443

frigate:
ports:
- "443:8971" # <- 左边为宿主机端口,右边为容器端口。需要注意国内家用宽带无法使用443端口

ACME验证支持

Frigate支持托管ACME验证文件(HTTP验证方式),需将验证文件挂载到:

/etc/letsencrypt/www