HomeAssistant MySQL SSL连接配置详解
在智能家居系统中,数据安全至关重要。当Home Assistant需要连接到远程MySQL数据库时,启用SSL/TLS加密可以有效保护数据在传输过程中的安全。本文将详细介绍两种常见的SSL配置方式,帮助您根据安全需求选择合适的方案。
完整SSL证书验证配置
对于生产环境或对安全性要求较高的场景,建议使用完整的SSL证书验证配置:
recorder:
purge_keep_days: 365
db_url: mysql://homeassistantUser:your_password@mysql_server_ip:3306/homeassistant?charset=utf8mb4&ssl_ca=/config/ssl/mysql/ca-cert.pem&ssl_cert=/config/ssl/mysql/client-cert.pem&ssl_key=/config/ssl/mysql/client-key.pem&ssl_verify_cert=true
# 可选:性能优化配置
commit_interval: 5
db_max_retries: 10
db_retry_wait: 3
参数详细说明
ssl_ca:指定CA(证书颁发机构)根证书路径,用于验证MySQL服务器证书的合法性ssl_cert:客户端证书文件路径,用于向服务器证明客户端身份ssl_key:客户端私钥文件路径,与客户端证书配对使用ssl_verify_cert:设置为true时启用服务器证书验证,确保连接到的是可信的MySQL服务器ssl_mode:替代参数,支持以下选项:DISABLED:禁用SSLPREFERRED:优先使用SSL,但不强制REQUIRED:必须使用SSL连接VERIFY_CA:使用SSL并验证CA证书VERIFY_IDENTITY:使用SSL并验证证书标识
证书文件准备
- CA证书:证书颁发机构的根证书,用于验证服务器证书
- 客户端证书:由CA签发的客户端身份证书
- 客户端私钥:与客户端证书对应的私钥文件
建议将这些文件放置在Home Assistant可访问的目录,如 /config/ssl/mysql/,并确保文件权限设置为仅限所有者读写:
chmod 600 /config/ssl/mysql/*.pem
简化SSL配置(仅要求加密)
对于内部网络或测试环境,如果只需要加密连接而不需要严格的证书验证,可以使用简化配置:
recorder:
db_url: mysql://homeassistantUser:your_password@mysql_server_ip:3306/homeassistant?charset=utf8mb4&ssl_mode=REQUIRED