mirror of
https://github.com/SpaceTimee/Sheas-Cealer.git
synced 2025-07-14 05:12:09 +08:00
1.1.2 -> 1.1.3 第14次更新
This commit is contained in:
parent
fe2475b8fa
commit
820df74051
@ -217,17 +217,17 @@ public partial class MainWin : Window
|
|||||||
foreach ((List<(string cealHostIncludeDomain, string cealHostExcludeDomain)> cealHostDomainPairs, _, _) in cealHostRules)
|
foreach ((List<(string cealHostIncludeDomain, string cealHostExcludeDomain)> cealHostDomainPairs, _, _) in cealHostRules)
|
||||||
foreach ((string cealHostIncludeDomain, _) in cealHostDomainPairs)
|
foreach ((string cealHostIncludeDomain, _) in cealHostDomainPairs)
|
||||||
{
|
{
|
||||||
string cealHostIncludeDomainWithoutWildcard = cealHostIncludeDomain.TrimStart('*').TrimStart('.');
|
string cealHostIncludeDomainWithoutWildcard = cealHostIncludeDomain.TrimStart('$').TrimStart('*').TrimStart('.');
|
||||||
|
|
||||||
if (cealHostIncludeDomain.StartsWith('#') || cealHostIncludeDomainWithoutWildcard.Contains('*'))
|
if (cealHostIncludeDomain.StartsWith('#') || cealHostIncludeDomainWithoutWildcard.Contains('*'))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (cealHostIncludeDomain.StartsWith('*'))
|
if (cealHostIncludeDomain.TrimStart('$').StartsWith('*'))
|
||||||
{
|
{
|
||||||
childCertSanBuilder.AddDnsName($"*.{cealHostIncludeDomainWithoutWildcard}");
|
childCertSanBuilder.AddDnsName($"*.{cealHostIncludeDomainWithoutWildcard}");
|
||||||
hostsConfAppendContent += $"127.0.0.1 www.{cealHostIncludeDomainWithoutWildcard}\n";
|
hostsConfAppendContent += $"127.0.0.1 www.{cealHostIncludeDomainWithoutWildcard}\n";
|
||||||
|
|
||||||
if (cealHostIncludeDomain.StartsWith("*."))
|
if (cealHostIncludeDomain.TrimStart('$').StartsWith("*."))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -511,7 +511,7 @@ public partial class MainWin : Window
|
|||||||
|
|
||||||
string[] cealHostDomainPair = cealHostDomain.ToString().Split('^', 2);
|
string[] cealHostDomainPair = cealHostDomain.ToString().Split('^', 2);
|
||||||
|
|
||||||
cealHostDomainPairs.Add((cealHostDomainPair[0], cealHostDomainPair[1]));
|
cealHostDomainPairs.Add((cealHostDomainPair[0], cealHostDomainPair.Length == 2 ? cealHostDomainPair[1] : string.Empty));
|
||||||
}
|
}
|
||||||
|
|
||||||
CealHostRulesDict[cealHostName].Add((cealHostDomainPairs, cealHostSni, cealHostIp));
|
CealHostRulesDict[cealHostName].Add((cealHostDomainPairs, cealHostSni, cealHostIp));
|
||||||
@ -522,10 +522,12 @@ public partial class MainWin : Window
|
|||||||
{
|
{
|
||||||
string hostRules = string.Empty;
|
string hostRules = string.Empty;
|
||||||
string hostResolverRules = string.Empty;
|
string hostResolverRules = string.Empty;
|
||||||
|
int nullSniNum = 0;
|
||||||
|
|
||||||
foreach (List<(List<(string cealHostIncludeDomain, string cealHostExcludeDomain)> cealHostDomainPairs, string? cealHostSni, string cealHostIp)> cealHostRules in CealHostRulesDict.Values)
|
foreach (List<(List<(string cealHostIncludeDomain, string cealHostExcludeDomain)> cealHostDomainPairs, string? cealHostSni, string cealHostIp)> cealHostRules in CealHostRulesDict.Values)
|
||||||
foreach ((List<(string cealHostIncludeDomain, string cealHostExcludeDomain)> cealHostDomainPairs, string? cealHostSni, string cealHostIp) in cealHostRules)
|
foreach ((List<(string cealHostIncludeDomain, string cealHostExcludeDomain)> cealHostDomainPairs, string? cealHostSni, string cealHostIp) in cealHostRules)
|
||||||
{
|
{
|
||||||
|
string cealHostSniWithoutNull = cealHostSni ?? $"{cealHostName}{CealHostRulesDict[cealHostName].Count + ++nullSniNum}";
|
||||||
bool isValidCealHostDomainExist = false;
|
bool isValidCealHostDomainExist = false;
|
||||||
|
|
||||||
foreach ((string cealHostIncludeDomain, string cealHostExcludeDomain) in cealHostDomainPairs)
|
foreach ((string cealHostIncludeDomain, string cealHostExcludeDomain) in cealHostDomainPairs)
|
||||||
@ -533,12 +535,12 @@ public partial class MainWin : Window
|
|||||||
if (cealHostIncludeDomain.StartsWith('$'))
|
if (cealHostIncludeDomain.StartsWith('$'))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
hostRules += $"MAP {cealHostIncludeDomain} {cealHostSni}," + (!string.IsNullOrWhiteSpace(cealHostExcludeDomain) ? $"EXCLUDE {cealHostExcludeDomain}," : string.Empty);
|
hostRules += $"MAP {cealHostIncludeDomain.TrimStart('#')} {cealHostSniWithoutNull}," + (!string.IsNullOrWhiteSpace(cealHostExcludeDomain) ? $"EXCLUDE {cealHostExcludeDomain}," : string.Empty);
|
||||||
isValidCealHostDomainExist = true;
|
isValidCealHostDomainExist = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isValidCealHostDomainExist)
|
if (isValidCealHostDomainExist)
|
||||||
hostResolverRules += $"MAP {cealHostSni} {cealHostIp},";
|
hostResolverRules += $"MAP {cealHostSniWithoutNull} {cealHostIp},";
|
||||||
}
|
}
|
||||||
|
|
||||||
CealArgs = @$"/c @start .\""{Path.GetFileName(MainConst.UncealedBrowserPath)}"" --host-rules=""{hostRules.TrimEnd(',')}"" --host-resolver-rules=""{hostResolverRules.TrimEnd(',')}"" --test-type --ignore-certificate-errors";
|
CealArgs = @$"/c @start .\""{Path.GetFileName(MainConst.UncealedBrowserPath)}"" --host-rules=""{hostRules.TrimEnd(',')}"" --host-resolver-rules=""{hostResolverRules.TrimEnd(',')}"" --test-type --ignore-certificate-errors";
|
||||||
@ -592,7 +594,7 @@ public partial class MainWin : Window
|
|||||||
if (cealHostIncludeDomain.StartsWith('#'))
|
if (cealHostIncludeDomain.StartsWith('#'))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
serverName += "^" + (!string.IsNullOrWhiteSpace(cealHostExcludeDomain) ? $"(?!{cealHostExcludeDomain.Replace(".", "\\.").Replace("*", ".*")})" : string.Empty) + cealHostIncludeDomain.Replace(".", "\\.").Replace("*", ".*") + "$|";
|
serverName += "^" + (!string.IsNullOrWhiteSpace(cealHostExcludeDomain) ? $"(?!{cealHostExcludeDomain.Replace(".", "\\.").Replace("*", ".*")})" : string.Empty) + cealHostIncludeDomain.TrimStart('$').Replace(".", "\\.").Replace("*", ".*") + "$|";
|
||||||
}
|
}
|
||||||
|
|
||||||
NginxConfs = NginxConfs
|
NginxConfs = NginxConfs
|
||||||
@ -600,10 +602,12 @@ public partial class MainWin : Window
|
|||||||
.AddOrUpdate($"http:server[{serverIndex}]:listen", "443 ssl")
|
.AddOrUpdate($"http:server[{serverIndex}]:listen", "443 ssl")
|
||||||
.AddOrUpdate($"http:server[{serverIndex}]:ssl_certificate", Path.GetFileName(MainConst.NginxCertPath))
|
.AddOrUpdate($"http:server[{serverIndex}]:ssl_certificate", Path.GetFileName(MainConst.NginxCertPath))
|
||||||
.AddOrUpdate($"http:server[{serverIndex}]:ssl_certificate_key", Path.GetFileName(MainConst.NginxKeyPath))
|
.AddOrUpdate($"http:server[{serverIndex}]:ssl_certificate_key", Path.GetFileName(MainConst.NginxKeyPath))
|
||||||
.AddOrUpdate($"http:server[{serverIndex}]:proxy_ssl_server_name", cealHostSni != null ? "on" : "off")
|
|
||||||
.AddOrUpdate($"http:server[{serverIndex}]:proxy_ssl_name", cealHostSni ?? string.Empty)
|
|
||||||
.AddOrUpdate($"http:server[{serverIndex}]:location", "/", true)
|
.AddOrUpdate($"http:server[{serverIndex}]:location", "/", true)
|
||||||
.AddOrUpdate($"http:server[{serverIndex}]:location:proxy_pass", $"https://{cealHostIp}");
|
.AddOrUpdate($"http:server[{serverIndex}]:location:proxy_pass", $"https://{cealHostIp}");
|
||||||
|
|
||||||
|
NginxConfs = cealHostSni == null ?
|
||||||
|
NginxConfs.AddOrUpdate($"http:server[{serverIndex}]:proxy_ssl_server_name", "off") :
|
||||||
|
NginxConfs.AddOrUpdate($"http:server[{serverIndex}]:proxy_ssl_name", cealHostSni);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user