本页只解释 lynx/conf/boot-example.yml 里归属于 lynx.tls 和 lynx.tls.auto 的配置范围。
当前 boot-example.yml 并没有直接展开这段 TLS 配置,所以需要你自己把这些键补到 lynx: 下面。
TLS 加载器位于 github.com/go-lynx/lynx/tls。它负责加载证书、向应用注册 lynx.CertificateProvider,然后由 HTTP、gRPC 等真正打开 tls_enable 的传输插件消费。
Runtime 事实
| 项目 | 值 |
|---|
| Go module | github.com/go-lynx/lynx/tls |
| 主配置前缀 | lynx.tls |
| 自动证书补充键 | lynx.tls.auto |
| Runtime 插件名 | tls |
| 默认来源类型 | control_plane |
| 传输层联动 | HTTP / gRPC 还要各自再开 tls_enable: true |
配置前先知道
source_type: auto 是代码层支持的能力,虽然 protobuf 本身只声明了 control_plane、local_file、memory。
- 只有当
lynx.tls.source_type 为 auto 时,代码才会去读取 lynx.tls.auto。
- 控制面模式下,
group 为空会回退到 file_name。
shared_ca.config_group 为空会回退到 shared_ca.config_name。
verify_hostname、cipher_suites、session_ticket_key 会被接收和校验,但当前 applyCommonConfig() 还没有把它们真正写进 tls.Config。
lynx.tls
| 字段 | 作用 | 何时生效 | 默认值 / 交互关系 | 常见误配 |
|---|
source_type | 选择证书来源。 | 一直生效。 | 默认 control_plane;可选 control_plane、local_file、memory、auto。 | 想用自动证书却忘了把来源切到 auto。 |
file_name | 指定控制面里的 TLS 配置名。 | 仅 source_type: control_plane。 | 控制面模式必填。 | 留空后还以为会自动推导。 |
group | 指定控制面分组。 | 仅 source_type: control_plane。 | 可选;为空时会使用 file_name。 | 分组写错,结果一直在读错的远程配置。 |
local_file | 文件证书来源配置块。 | 仅 source_type: local_file。 | 本模式必须提供。 | 填了文件块,却把 source_type 留在默认值。 |
memory | 内嵌 PEM 内容配置块。 | 仅 source_type: memory。 | 本模式必须提供。 | 往这里填文件路径,而不是 PEM 内容。 |
common | 证书加载完成后再套一层通用 TLS 策略。 | 任意来源都可用。 | 可选;但并不是块里的每个字段都已经接线到运行时。 | 以为 common 里所有字段都会立即影响实际握手。 |
lynx.tls.local_file
| 字段 | 作用 | 何时生效 | 默认值 / 交互关系 | 常见误配 |
|---|
cert_file | 服务端证书文件路径。 | local_file 模式必填。 | 校验器会解析绝对路径并检查可读性。 | 相对路径写对了仓库位置,但服务进程工作目录下找不到。 |
key_file | 私钥文件路径。 | local_file 模式必填。 | 校验器会检查可读性。 | 把证书和私钥路径写反。 |
root_ca_file | 可选根 CA 文件路径。 | 需要自定义 CA 验证时。 | 可选;有值就会校验。 | mTLS 场景漏掉 CA,结果对端校验失败。 |
watch_files | 是否监听证书文件变化并热重载。 | 仅 local_file 模式。 | 默认 false。 | 在 memory 或 control_plane 模式里开它,结果当然没有热更新。 |
reload_interval | 文件轮询 / 重载间隔。 | 仅 watch_files: true 时。 | 默认 5s;合法范围 1s 到 300s。 | 填成 过小或过大的值触发校验失败。 |
cert_format | 声明磁盘证书格式。 | 仅 local_file 模式。 | 默认 pem;只接受 pem 和 der。 | 写成 crt、x509 之类代码不认识的字符串。 |
lynx.tls.memory
| 字段 | 作用 | 何时生效 | 默认值 / 交互关系 | 常见误配 |
|---|
cert_data | 直接内嵌证书 PEM 内容。 | memory 模式必填。 | 无默认值。 | 填成文件路径。 |
key_data | 直接内嵌私钥 PEM 内容。 | memory 模式必填。 | 无默认值。 | 只贴了证书,没贴对应私钥。 |
root_ca_data | 直接内嵌根 CA PEM 内容。 | 需要自定义 CA 校验时。 | 可选。 | 自签环境不填它,还希望对端验证通过。 |
lynx.tls.common
| 字段 | 作用 | 何时生效 | 默认值 / 交互关系 | 常见误配 |
|---|
auth_type | 直接映射 Go 的 crypto/tls.ClientAuthType。 | common 存在时。 | 默认 0;合法范围 0..4。 | 参考过期注释,以为 Lynx 会重新解释这些值。 |
verify_hostname | |