mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-07-09 06:06:08 +00:00
fix(sub): apply host Allow Insecure to Hysteria2 subscription links (#5866)
Host.AllowInsecure was only wired into the shared VLESS/VMess/Trojan/Shadowsocks endpoint path (applyEndpointAllowInsecure). Hysteria/Hysteria2 builds its links through its own applyExternalProxyHysteriaParams (raw hysteria2:// link) and buildHysteriaProxy (Clash/Mihomo proxy), neither of which read the host's allowInsecure flag, so a self-signed Hysteria2 host never got insecure=1 or skip-cert-verify: true. Fixes #5865. Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
This commit is contained in:
@@ -336,6 +336,9 @@ func (s *SubClashService) buildHysteriaProxy(subReq *SubService, inbound *model.
|
||||
}
|
||||
}
|
||||
}
|
||||
if insecure, ok := ep["allowInsecure"].(bool); ok && insecure {
|
||||
proxy["skip-cert-verify"] = true
|
||||
}
|
||||
|
||||
// Salamander obfs (Hysteria2). Read the same finalmask.udp[salamander]
|
||||
// block the subscription link generator uses.
|
||||
|
||||
+10
-9
@@ -1556,17 +1556,18 @@ func applyExternalProxyTLSParams(ep map[string]any, params map[string]string, se
|
||||
// the inbound's own — Hysteria external proxies are typically alternate
|
||||
// endpoints (port-hop / CDN) fronting the same certificate.
|
||||
func applyExternalProxyHysteriaParams(ep map[string]any, params map[string]string) {
|
||||
pins, ok := externalProxyPins(ep["pinnedPeerCertSha256"])
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
hexPins := make([]string, 0, len(pins))
|
||||
for _, p := range pins {
|
||||
if s, ok := p.(string); ok {
|
||||
hexPins = append(hexPins, hysteriaPinHex(s))
|
||||
if pins, ok := externalProxyPins(ep["pinnedPeerCertSha256"]); ok {
|
||||
hexPins := make([]string, 0, len(pins))
|
||||
for _, p := range pins {
|
||||
if s, ok := p.(string); ok {
|
||||
hexPins = append(hexPins, hysteriaPinHex(s))
|
||||
}
|
||||
}
|
||||
params["pinSHA256"] = strings.Join(hexPins, ",")
|
||||
}
|
||||
if ai, ok := ep["allowInsecure"].(bool); ok && ai {
|
||||
params["insecure"] = "1"
|
||||
}
|
||||
params["pinSHA256"] = strings.Join(hexPins, ",")
|
||||
}
|
||||
|
||||
// cloneStreamForExternalProxy returns a shallow clone of stream with
|
||||
|
||||
Reference in New Issue
Block a user