mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-06-05 12:44:22 +00:00
fix(hysteria): use pinSHA256 for pinned cert and emit ech in share links
Hysteria links now carry the pinned peer cert under the hysteria2-standard pinSHA256 key instead of pcs (frontend genHysteriaLink + outbound importer round-trip), and the Go subscription generator emits ech from echConfigList. Also drops the dead allowInsecure guard in genHysteriaLink, which read a field that does not exist on TlsClientSettings.
This commit is contained in:
parent
7f8c79675f
commit
588ea86298
3 changed files with 7 additions and 4 deletions
|
|
@ -610,6 +610,9 @@ export function genHysteriaLink(input: GenHysteriaLinkInput): string {
|
|||
if (tls.alpn.length > 0) params.set('alpn', tls.alpn.join(','));
|
||||
if (tls.settings.echConfigList.length > 0) params.set('ech', tls.settings.echConfigList);
|
||||
if (tls.serverName.length > 0) params.set('sni', tls.serverName);
|
||||
if (tls.settings.pinnedPeerCertSha256.length > 0) {
|
||||
params.set('pinSHA256', tls.settings.pinnedPeerCertSha256.join(','));
|
||||
}
|
||||
|
||||
const udpMasks = stream.finalmask?.udp;
|
||||
if (Array.isArray(udpMasks)) {
|
||||
|
|
|
|||
|
|
@ -417,7 +417,7 @@ export function parseHysteria2Link(link: string): Raw | null {
|
|||
fingerprint: params.get('fp') ?? '',
|
||||
echConfigList: params.get('ech') ?? '',
|
||||
verifyPeerCertByName: '',
|
||||
pinnedPeerCertSha256: params.get('pcs') ?? '',
|
||||
pinnedPeerCertSha256: params.get('pinSHA256') ?? '',
|
||||
},
|
||||
};
|
||||
applyFinalMaskParam(stream, params);
|
||||
|
|
|
|||
|
|
@ -603,9 +603,9 @@ func (s *SubService) genHysteriaLink(inbound *model.Inbound, email string) strin
|
|||
if fpValue, ok := searchKey(tlsSettings, "fingerprint"); ok {
|
||||
params["fp"], _ = fpValue.(string)
|
||||
}
|
||||
if insecure, ok := searchKey(tlsSettings, "allowInsecure"); ok {
|
||||
if insecure.(bool) {
|
||||
params["insecure"] = "1"
|
||||
if echValue, ok := searchKey(tlsSettings, "echConfigList"); ok {
|
||||
if ech, _ := echValue.(string); ech != "" {
|
||||
params["ech"] = ech
|
||||
}
|
||||
}
|
||||
if pins, ok := pinnedSha256List(tlsSettings); ok {
|
||||
|
|
|
|||
Loading…
Reference in a new issue