feat: 读取节点的 ca-str 和 _ca (后端文件路径) 字段, 自动计算 fingerprint

This commit is contained in:
xream
2024-06-13 20:29:23 +08:00
parent 3ad42f2c10
commit ad3d2270ac
4 changed files with 42 additions and 1 deletions

View File

@@ -1,3 +1,4 @@
import rs from '@/utils/rs';
import YAML from '@/utils/yaml';
import download from '@/utils/download';
import {
@@ -463,6 +464,25 @@ function lastParse(proxy) {
if (['', 'off'].includes(proxy.sni)) {
proxy['disable-sni'] = true;
}
let caStr = proxy['ca_str'];
if (proxy['ca-str']) {
caStr = proxy['ca-str'];
} else if (caStr) {
delete proxy['ca_str'];
proxy['ca-str'] = caStr;
}
try {
if ($.env.isNode && !caStr && proxy['_ca']) {
caStr = $.node.fs.readFileSync(proxy['_ca'], {
encoding: 'utf8',
});
}
} catch (e) {
$.error(`Read ca file failed\nReason: ${e}`);
}
if (!proxy['tls-fingerprint'] && caStr) {
proxy['tls-fingerprint'] = rs.generateFingerprint(caStr);
}
return proxy;
}