From e9439541c3c817331c3746ed142ce37b18c9746e Mon Sep 17 00:00:00 2001 From: xljiulang <366193849@qq.com> Date: Sun, 18 Jul 2021 02:49:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E5=B9=B3=E5=8F=B0=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=AE=89=E8=A3=85=E8=AF=81=E4=B9=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../KestrelServerOptionsExtensions.cs | 26 ++++++++----------- .../ReverseProxyMiddleware.cs | 19 +++++++------- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/FastGithub.ReverseProxy/KestrelServerOptionsExtensions.cs b/FastGithub.ReverseProxy/KestrelServerOptionsExtensions.cs index 968eb95..0b49500 100644 --- a/FastGithub.ReverseProxy/KestrelServerOptionsExtensions.cs +++ b/FastGithub.ReverseProxy/KestrelServerOptionsExtensions.cs @@ -64,25 +64,21 @@ namespace FastGithub /// private static void TryInstallCaCert(string caPublicCerPath, ILogger logger) { - if (OperatingSystem.IsWindows()) + try { - try + var caCert = new X509Certificate2(caPublicCerPath); + using var store = new X509Store(StoreName.Root, StoreLocation.LocalMachine); + store.Open(OpenFlags.ReadWrite); + if (store.Certificates.Find(X509FindType.FindByThumbprint, caCert.Thumbprint, true).Count == 0) { - var caCert = new X509Certificate2(caPublicCerPath); - using var store = new X509Store(StoreName.Root, StoreLocation.LocalMachine); - store.Open(OpenFlags.ReadWrite); - if (store.Certificates.Find(X509FindType.FindByThumbprint, caCert.Thumbprint, true).Count == 0) - { - store.Add(caCert); - store.Close(); - } - } - catch (Exception) - { - logger.LogWarning($"安装根证书{caPublicCerPath}失败:请手动安装到“将所有的证书都放入下载存储”\\“受信任的根证书颁发机构”"); + store.Add(caCert); + store.Close(); } } + catch (Exception) + { + logger.LogWarning($"安装根证书{caPublicCerPath}失败:请手动安装到“将所有的证书都放入下载存储”\\“受信任的根证书颁发机构”"); + } } - } } diff --git a/FastGithub.ReverseProxy/ReverseProxyMiddleware.cs b/FastGithub.ReverseProxy/ReverseProxyMiddleware.cs index 467c28a..5ab27ec 100644 --- a/FastGithub.ReverseProxy/ReverseProxyMiddleware.cs +++ b/FastGithub.ReverseProxy/ReverseProxyMiddleware.cs @@ -47,18 +47,19 @@ namespace FastGithub.ReverseProxy error = ForwarderError.NoAvailableDestinations.ToString(), message = $"不支持https反向代理{host}这个域名" }); - return; } + else + { + var destinationPrefix = GetDestinationPrefix(host, domainConfig.Destination); + var requestConfig = new ForwarderRequestConfig { Timeout = domainConfig.Timeout }; - var destinationPrefix = GetDestinationPrefix(host, domainConfig.Destination); - var requestConfig = new ForwarderRequestConfig { Timeout = domainConfig.Timeout }; + var httpClient = domainConfig.TlsSni + ? new HttpMessageInvoker(this.sniHttpClientHanlder, disposeHandler: false) + : new HttpMessageInvoker(this.noSniHttpClientHanlder, disposeHandler: false); - var httpClient = domainConfig.TlsSni - ? new HttpMessageInvoker(this.sniHttpClientHanlder, disposeHandler: false) - : new HttpMessageInvoker(this.noSniHttpClientHanlder, disposeHandler: false); - - var error = await httpForwarder.SendAsync(context, destinationPrefix, httpClient, requestConfig); - await ResponseErrorAsync(context, error); + var error = await httpForwarder.SendAsync(context, destinationPrefix, httpClient, requestConfig); + await ResponseErrorAsync(context, error); + } } ///