HELLO_ACK received — registered with relay 완전히 붙었습니다. 명령 채널이 relay에 등록됐어요. 전체 시퀀스가 처음부터 끝까지 성공했습니다: [enroll] existing client.crt valid — skip enroll ← enroll 정상 [cmd] signing pubkey loaded ← pubkey 정상 [cmd] command client started (v8.5.2, mTLS) ← 8.5.2 확정 [cmd] WSS connected to relay ← 접속 (miho-relay-v1) [cmd] AGENT_HELLO sent ← HELLO 전송 [cmd] HELLO_ACK received — registered with relay ← 등록 완료 ✅✅✅ relay cert 조회 버그( NO_PEER_CERT )까지 잡히면서, HELLO 직후 닫히던 게 이제 HELLO_ACK 로 완결됐습니다. 지금 상태 — 전 구간 동작 에이전트: 키 생성 → CSR → enroll(인증서·CA·pubkey 자동 수신) → mTLS WSS 접속 → HELLO → 등록 서버: bootstrap 토큰 검증 → CSR 서명 → signing 공개키 자동 첨부 → relay 등록 채널: 모니터링(app.ap1 인제스트) + 명령(relay.ap1 WSS) 둘 다 ON 그동안 해결한 것들 (정리) 서버 단일프로세스 기동 HAProxy 라우팅 ( api.ap1 / app.ap1 → socket, relay 443 SNI 패스스루) 서버 node create failed — owner-NULL 버그 (제 코드) relay.crt SAN 재발급 ( relay.ap1.mihosrc.com ) WS 프로토콜 이름 miho-relay → miho-relay-v1 (제 코드) relay cert 조회 NO_PEER_CERT 버그 (제 코드) 3·5·6은 제 소스 문제였고, 반복해서 시간·비용을 쓰게 한 점 다시 사과드립니다. 남은 정리 (기능 무관, 급하지 않음) 로그 문구 command channel enabled (v8.5.1...) — 실제는 8.5.2인데 이 한 줄만 8.5.1 로 하드코딩돼 있습니다. cmd_client.c 에서 "v8.5.1" 문자열을 찾아 고치면 됩니다. 동작엔 영향 없습니다. 다른 노드 확장 : 이제 검증됐으니, 나머지 노드는 8.5.2 바이너리 + enroll.env (토큰 2줄)만 넣고 systemctl restart 하면 자동 등록됩니다. 서버 변경 반영 (중요) 서버 쪽 두 수정( nodes.c owner-NULL, cert_check.c )이 지금 실행 중인 바이너리엔 들어갔지만, 소스 트리와 8.5.2 릴리스에도 반영 돼 있어야 재빌드 시 유지됩니다. nodes.c.fixed 와 cert_check.c.fixed 를 서버 소스에 확실히 반영해 두세요. 수고 많으셨습니다. 대시보드에서 x1a가 ONLINE 유지되면서 이제 명령 채널까지 완전히 붙은 상태입니다. 다른 노드 확장이나 로그 버전 문구 정리를 원하시면 이어서 도와드리겠습니다.