Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/web/html
diff options
context:
space:
mode:
authorSanaei <ho3ein.sanaei@gmail.com>2025-08-04 17:27:57 +0300
committerGitHub <noreply@github.com>2025-08-04 17:27:57 +0300
commite4ba5ba53a27ee256364e7031df3d43afb3b3fe6 (patch)
tree994de962ab65539acbc7f9802b07fa5c111795fd /web/html
parent6ff555c8bb7abf2d528363b4937757424a0ae527 (diff)
add ech support (#3310)
Co-authored-by: Alireza Ahmadi <alireza7@gmail.com>
Diffstat (limited to 'web/html')
-rw-r--r--web/html/form/tls_settings.html15
-rw-r--r--web/html/modals/inbound_modal.html10
2 files changed, 25 insertions, 0 deletions
diff --git a/web/html/form/tls_settings.html b/web/html/form/tls_settings.html
index 0de6dae5..3e61b5a2 100644
--- a/web/html/form/tls_settings.html
+++ b/web/html/form/tls_settings.html
@@ -106,6 +106,21 @@
<a-switch v-model="cert.buildChain"></a-switch>
</a-form-item>
</template>
+ <a-form-item label='ECH key'>
+ <a-input v-model="inbound.stream.tls.echServerKeys"></a-input>
+ </a-form-item>
+ <a-form-item label='ECH config'>
+ <a-input v-model="inbound.stream.tls.settings.echConfigList"></a-input>
+ </a-form-item>
+ <a-form-item label='ECH force query'>
+ <a-select v-model="inbound.stream.tls.echForceQuery"
+ :dropdown-class-name="themeSwitcher.currentTheme">
+ <a-select-option v-for="key in ['none', 'half', 'full']" :value="key">[[ key ]]</a-select-option>
+ </a-select>
+ </a-form-item>
+ <a-form-item label=" ">
+ <a-button type="primary" icon="import" @click="getNewEchCert">Get New ECH Cert</a-button>
+ </a-form-item>
</template>
<!-- reality settings -->
diff --git a/web/html/modals/inbound_modal.html b/web/html/modals/inbound_modal.html
index f11df2e2..b77e74e2 100644
--- a/web/html/modals/inbound_modal.html
+++ b/web/html/modals/inbound_modal.html
@@ -152,6 +152,16 @@
inModal.inbound.stream.reality.mldsa65Seed = msg.obj.seed;
inModal.inbound.stream.reality.settings.mldsa65Verify = msg.obj.verify;
},
+ async getNewEchCert() {
+ inModal.loading(true);
+ const msg = await HttpUtil.post('/server/getNewEchCert', {sni: inModal.inbound.stream.tls.sni});
+ inModal.loading(false);
+ if (!msg.success) {
+ return;
+ }
+ inModal.inbound.stream.tls.echServerKeys = msg.obj.echServerKeys;
+ inModal.inbound.stream.tls.settings.echConfigList = msg.obj.echConfigList;
+ },
},
});