编号:L-06 严重级:medium 工作线:监听与 HTTP(internal/listener、internal/httpx、serve 的 HTTP 装配) 来源:审查 P-09 依赖:无 被依赖:无
采用审查 P-09 的方案:
tls.cert_file
allow_plaintext=false
https://
InsecureSkipVerify: true
deploy/config.docker.yaml
allow_plaintext: false
cmd/nixmsg/healthcheck.go、deploy/config.docker.yaml。
cmd/nixmsg/healthcheck.go
无。
用测试证书、allow_plaintext: false 启动 runServe,cmdHealthcheck 返回 nil。
runServe
cmdHealthcheck
以下是本次复审各区审查报告的原文段落。A、M、I、P、S 开头的是原始发现编号(A 管理后台与网页、M 消息核心、I 身份认证群在线、P 传输平台部署、S SDK)。解决方案以本 issue 上方的"结论与统一方案"为准;原文里的方案与之不一致时,按上方执行。
nixmsg healthcheck
http://
allow_plaintext: true
healthcheck.go:28-30
listener/server.go:305-308
deploy/config.docker.yaml:7
docker-compose.yml:25-29
config.docker.yaml
复审基线:main 4059a15(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。
4059a15
已合入 origin/main 0c9b459。落地提交 7c926a0 fix: 修复 TLS ConnectionState、SPA 回退、健康检查与监听小问题 (#25)。
0c9b459
7c926a0
No dependencies set.
The note is not visible to the blocked user.
编号:L-06 严重级:medium 工作线:监听与 HTTP(internal/listener、internal/httpx、serve 的 HTTP 装配) 来源:审查 P-09
依赖:无 被依赖:无
结论与统一方案
采用审查 P-09 的方案:
tls.cert_file非空且allow_plaintext=false时,健康检查改用https://并设InsecureSkipVerify: true。只连 127.0.0.1 做存活探测,不涉及身份校验,在代码注释里说明原因。deploy/config.docker.yaml改回allow_plaintext: false;没配证书时本来就只跑明文,不影响开箱即用。改动文件
cmd/nixmsg/healthcheck.go、deploy/config.docker.yaml。与其他问题的交互 / 冲突说明
无。
验收与测试
用测试证书、
allow_plaintext: false启动runServe,cmdHealthcheck返回 nil。问题明细(各区审查原文,证据含文件与行号)
[P-09] 健康检查只会明文 HTTP:按推荐配了证书并关闭明文时必失败,示例配置因此默认开着明文
nixmsg healthcheck固定请求http://。配了证书且allow_plaintext: false时(PRD F21 的默认,OPS 第 5 节和 DEVELOPMENT 12 也这样推荐),listener 收到明文首字节直接关连接,健康检查永远失败,容器一直是 unhealthy。deploy/config.docker.yaml默认写的是allow_plaintext: true。运维照注释挂上证书后,生产环境会继续接受明文,和"配置了证书则默认只接受 TLS"正好相反。healthcheck.go:28-30;listener/server.go:305-308;deploy/config.docker.yaml:7;docker-compose.yml:25-29。tls.cert_file非空且allow_plaintext=false时,健康检查改用https://加InsecureSkipVerify: true。只连 127.0.0.1 做存活探测,不涉及身份校验,在代码里注释说明原因。config.docker.yaml改回allow_plaintext: false。没配证书时本来就只跑明文,不影响开箱即用。cmd/nixmsg/healthcheck.go、deploy/config.docker.yamlallow_plaintext: false启动 runServe,cmdHealthcheck返回 nil。复审基线:main
4059a15(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。已合入 origin/main
0c9b459。落地提交7c926a0fix: 修复 TLS ConnectionState、SPA 回退、健康检查与监听小问题 (#25)。