3x-ui/database
MHSanaei 56ec359041
feat(nodes): add per-node TLS verification mode for self-signed certs (#4757)
Adds a per-node TLS verification mode to the Add/Edit Node dialog so the panel can reach nodes that serve HTTPS with a self-signed certificate:

- verify (default): normal CA validation.
- skip: InsecureSkipVerify, with a clear UI warning that it drops MITM protection.
- pin: validates the leaf certificate's SHA-256 (base64 or hex) via VerifyConnection while bypassing the default chain/name check — keeps MITM protection for self-signed certs, the secure alternative to skip.

New Node model fields tlsVerifyMode + pinnedCertSha256 (gorm auto-migrated). Probe() selects the HTTP client per node via nodeHTTPClientFor, keeping the SSRF-guarded dialer. A new POST /panel/api/nodes/certFingerprint endpoint (FetchCertFingerprint) lets the UI fetch and pin the node's current certificate in one click. Endpoint documented in api-docs/openapi; i18n added across all locales. Verified end-to-end in Docker (verify rejects, skip bypasses, fetch matches, pin accepts correct / rejects wrong).
2026-06-02 01:24:27 +02:00
..
model feat(nodes): add per-node TLS verification mode for self-signed certs (#4757) 2026-06-02 01:24:27 +02:00
db.go fix(nodes): sum client traffic across nodes instead of overwriting 2026-06-01 22:54:56 +02:00
db_seed_test.go feat(inbounds): support Unix domain socket path in Listen field (#4429) 2026-06-02 00:37:20 +02:00
dialect.go fix(nodes): use GREATEST for last_online merge on PostgreSQL 2026-05-29 02:04:02 +02:00
migrate_data.go fix(nodes): sum client traffic across nodes instead of overwriting 2026-06-01 22:54:56 +02:00