@@ -48,7 +48,20 @@ function hasNonBlankValue(value) {
4848 return value != null && `${ value } ` . trim ( ) . length > 0 ;
4949}
5050
51- function appendClientCert ( result , proxy ) {
51+ function appendTlsProxyParams ( result , proxy , enabled = true ) {
52+ if ( ! enabled ) {
53+ return ;
54+ }
55+
56+ result . appendIfPresent (
57+ `,server-cert-fingerprint-sha256=${ proxy [ 'tls-fingerprint' ] } ` ,
58+ 'tls-fingerprint' ,
59+ ) ;
60+ result . appendIfPresent ( `,sni="${ proxy . sni } "` , 'sni' ) ;
61+ result . appendIfPresent (
62+ `,skip-cert-verify=${ proxy [ 'skip-cert-verify' ] } ` ,
63+ 'skip-cert-verify' ,
64+ ) ;
5265 const clientCert = isPresent ( proxy , 'keystore-client-cert' )
5366 ? proxy [ 'keystore-client-cert' ]
5467 : proxy [ 'client-cert' ] ;
@@ -312,19 +325,8 @@ function trojan(proxy) {
312325 // tls
313326 result . appendIfPresent ( `,tls=${ proxy . tls } ` , 'tls' ) ;
314327
315- // tls fingerprint
316- result . appendIfPresent (
317- `,server-cert-fingerprint-sha256=${ proxy [ 'tls-fingerprint' ] } ` ,
318- 'tls-fingerprint' ,
319- ) ;
320-
321328 // tls verification
322- result . appendIfPresent ( `,sni="${ proxy . sni } "` , 'sni' ) ;
323- result . appendIfPresent (
324- `,skip-cert-verify=${ proxy [ 'skip-cert-verify' ] } ` ,
325- 'skip-cert-verify' ,
326- ) ;
327- appendClientCert ( result , proxy ) ;
329+ appendTlsProxyParams ( result , proxy ) ;
328330
329331 // tfo
330332 result . appendIfPresent ( `,tfo=${ proxy . tfo } ` , 'tfo' ) ;
@@ -390,19 +392,8 @@ function anytls(proxy) {
390392 'no-error-alert' ,
391393 ) ;
392394
393- // tls fingerprint
394- result . appendIfPresent (
395- `,server-cert-fingerprint-sha256=${ proxy [ 'tls-fingerprint' ] } ` ,
396- 'tls-fingerprint' ,
397- ) ;
398-
399395 // tls verification
400- result . appendIfPresent ( `,sni="${ proxy . sni } "` , 'sni' ) ;
401- result . appendIfPresent (
402- `,skip-cert-verify=${ proxy [ 'skip-cert-verify' ] } ` ,
403- 'skip-cert-verify' ,
404- ) ;
405- appendClientCert ( result , proxy ) ;
396+ appendTlsProxyParams ( result , proxy ) ;
406397
407398 // tfo
408399 result . appendIfPresent ( `,tfo=${ proxy . tfo } ` , 'tfo' ) ;
@@ -463,19 +454,8 @@ function trusttunnel(proxy) {
463454 'no-error-alert' ,
464455 ) ;
465456
466- // tls fingerprint
467- result . appendIfPresent (
468- `,server-cert-fingerprint-sha256=${ proxy [ 'tls-fingerprint' ] } ` ,
469- 'tls-fingerprint' ,
470- ) ;
471-
472457 // tls verification
473- result . appendIfPresent ( `,sni="${ proxy . sni } "` , 'sni' ) ;
474- result . appendIfPresent (
475- `,skip-cert-verify=${ proxy [ 'skip-cert-verify' ] } ` ,
476- 'skip-cert-verify' ,
477- ) ;
478- appendClientCert ( result , proxy ) ;
458+ appendTlsProxyParams ( result , proxy ) ;
479459
480460 // tfo
481461 result . appendIfPresent ( `,tfo=${ proxy . tfo } ` , 'tfo' ) ;
@@ -536,16 +516,7 @@ function h2Connect(proxy) {
536516 'no-error-alert' ,
537517 ) ;
538518
539- result . appendIfPresent (
540- `,server-cert-fingerprint-sha256=${ proxy [ 'tls-fingerprint' ] } ` ,
541- 'tls-fingerprint' ,
542- ) ;
543- result . appendIfPresent ( `,sni="${ proxy . sni } "` , 'sni' ) ;
544- result . appendIfPresent (
545- `,skip-cert-verify=${ proxy [ 'skip-cert-verify' ] } ` ,
546- 'skip-cert-verify' ,
547- ) ;
548- appendClientCert ( result , proxy ) ;
519+ appendTlsProxyParams ( result , proxy ) ;
549520
550521 if ( proxy . tfo ) {
551522 $ . info ( `Option tfo is not supported by Surge, thus omitted` ) ;
@@ -619,22 +590,11 @@ function vmess(proxy, includeUnsupportedProxy) {
619590 result . append ( `,vmess-aead=${ proxy . alterId === 0 } ` ) ;
620591 }
621592
622- // tls fingerprint
623- result . appendIfPresent (
624- `,server-cert-fingerprint-sha256=${ proxy [ 'tls-fingerprint' ] } ` ,
625- 'tls-fingerprint' ,
626- ) ;
627-
628593 // tls
629594 result . appendIfPresent ( `,tls=${ proxy . tls } ` , 'tls' ) ;
630595
631596 // tls verification
632- result . appendIfPresent ( `,sni="${ proxy . sni } "` , 'sni' ) ;
633- result . appendIfPresent (
634- `,skip-cert-verify=${ proxy [ 'skip-cert-verify' ] } ` ,
635- 'skip-cert-verify' ,
636- ) ;
637- appendClientCert ( result , proxy ) ;
597+ appendTlsProxyParams ( result , proxy , Boolean ( proxy . tls ) ) ;
638598
639599 // tfo
640600 result . appendIfPresent ( `,tfo=${ proxy . tfo } ` , 'tfo' ) ;
@@ -766,19 +726,8 @@ function http(proxy) {
766726 'no-error-alert' ,
767727 ) ;
768728
769- // tls fingerprint
770- result . appendIfPresent (
771- `,server-cert-fingerprint-sha256=${ proxy [ 'tls-fingerprint' ] } ` ,
772- 'tls-fingerprint' ,
773- ) ;
774-
775729 // tls verification
776- result . appendIfPresent ( `,sni="${ proxy . sni } "` , 'sni' ) ;
777- result . appendIfPresent (
778- `,skip-cert-verify=${ proxy [ 'skip-cert-verify' ] } ` ,
779- 'skip-cert-verify' ,
780- ) ;
781- appendClientCert ( result , proxy ) ;
730+ appendTlsProxyParams ( result , proxy , Boolean ( proxy . tls ) ) ;
782731
783732 // tfo
784733 result . appendIfPresent ( `,tfo=${ proxy . tfo } ` , 'tfo' ) ;
@@ -895,19 +844,8 @@ function socks5(proxy) {
895844 'no-error-alert' ,
896845 ) ;
897846
898- // tls fingerprint
899- result . appendIfPresent (
900- `,server-cert-fingerprint-sha256=${ proxy [ 'tls-fingerprint' ] } ` ,
901- 'tls-fingerprint' ,
902- ) ;
903-
904847 // tls verification
905- result . appendIfPresent ( `,sni="${ proxy . sni } "` , 'sni' ) ;
906- result . appendIfPresent (
907- `,skip-cert-verify=${ proxy [ 'skip-cert-verify' ] } ` ,
908- 'skip-cert-verify' ,
909- ) ;
910- appendClientCert ( result , proxy ) ;
848+ appendTlsProxyParams ( result , proxy , Boolean ( proxy . tls ) ) ;
911849
912850 // tfo
913851 if ( proxy . tfo ) {
@@ -1103,18 +1041,7 @@ function tuic(proxy) {
11031041 ) ;
11041042
11051043 // tls verification
1106- result . appendIfPresent ( `,sni="${ proxy . sni } "` , 'sni' ) ;
1107- result . appendIfPresent (
1108- `,skip-cert-verify=${ proxy [ 'skip-cert-verify' ] } ` ,
1109- 'skip-cert-verify' ,
1110- ) ;
1111- appendClientCert ( result , proxy ) ;
1112-
1113- // tls fingerprint
1114- result . appendIfPresent (
1115- `,server-cert-fingerprint-sha256=${ proxy [ 'tls-fingerprint' ] } ` ,
1116- 'tls-fingerprint' ,
1117- ) ;
1044+ appendTlsProxyParams ( result , proxy ) ;
11181045
11191046 // tfo
11201047 if ( isPresent ( proxy , 'tfo' ) ) {
@@ -1380,16 +1307,7 @@ function hysteria2(proxy) {
13801307 ) ;
13811308
13821309 // tls verification
1383- result . appendIfPresent ( `,sni="${ proxy . sni } "` , 'sni' ) ;
1384- result . appendIfPresent (
1385- `,skip-cert-verify=${ proxy [ 'skip-cert-verify' ] } ` ,
1386- 'skip-cert-verify' ,
1387- ) ;
1388- appendClientCert ( result , proxy ) ;
1389- result . appendIfPresent (
1390- `,server-cert-fingerprint-sha256=${ proxy [ 'tls-fingerprint' ] } ` ,
1391- 'tls-fingerprint' ,
1392- ) ;
1310+ appendTlsProxyParams ( result , proxy ) ;
13931311
13941312 // tfo
13951313 if ( isPresent ( proxy , 'tfo' ) ) {
0 commit comments