This commit is contained in:
xljiulang 2022-09-18 01:19:42 +08:00
parent 0ddc22a299
commit 2a6289ecf6
9 changed files with 22 additions and 44 deletions

View File

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<Version>2.1.4</Version> <Version>2.1.4</Version>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net7.0</TargetFramework>
<IsWebConfigTransformDisabled>true</IsWebConfigTransformDisabled> <IsWebConfigTransformDisabled>true</IsWebConfigTransformDisabled>
<Description>github加速神器</Description> <Description>github加速神器</Description>
<Copyright>https://github.com/dotnetcore/FastGithub</Copyright> <Copyright>https://github.com/dotnetcore/FastGithub</Copyright>

View File

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.0" /> <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.2" />
<PackageReference Include="Microsoft.Extensions.Options" Version="6.0.0" /> <PackageReference Include="Microsoft.Extensions.Options" Version="6.0.0" />
</ItemGroup> </ItemGroup>

View File

@ -1,11 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<ItemGroup> <ItemGroup>
<PackageReference Include="PInvoke.AdvApi32" Version="0.7.104" /> <PackageReference Include="PInvoke.AdvApi32" Version="0.7.124" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="6.0.0" /> <PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="6.0.1" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="6.0.0" /> <PackageReference Include="Microsoft.Extensions.Hosting" Version="6.0.1" />
<PackageReference Include="DNS" Version="6.1.0" /> <PackageReference Include="DNS" Version="7.0.0" />
<PackageReference Include="Tommy" Version="3.0.1" /> <PackageReference Include="Tommy" Version="3.1.2" />
<ProjectReference Include="..\FastGithub.Configuration\FastGithub.Configuration.csproj" /> <ProjectReference Include="..\FastGithub.Configuration\FastGithub.Configuration.csproj" />
</ItemGroup> </ItemGroup>

View File

@ -1,7 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<ItemGroup> <ItemGroup>
<PackageReference Include="Portable.BouncyCastle" Version="1.9.0" />
<ProjectReference Include="..\FastGithub.DomainResolve\FastGithub.DomainResolve.csproj" /> <ProjectReference Include="..\FastGithub.DomainResolve\FastGithub.DomainResolve.csproj" />
</ItemGroup> </ItemGroup>

View File

@ -1,7 +1,6 @@
using FastGithub.Configuration; using FastGithub.Configuration;
using FastGithub.DomainResolve; using FastGithub.DomainResolve;
using System; using System;
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
@ -200,32 +199,15 @@ namespace FastGithub.Http
/// <returns></returns> /// <returns></returns>
private static IEnumerable<string> ReadDnsNames(X509Certificate? cert) private static IEnumerable<string> ReadDnsNames(X509Certificate? cert)
{ {
if (cert == null) if (cert is X509Certificate2 x509)
{ {
yield break; var extension = x509.Extensions.OfType<X509SubjectAlternativeNameExtension>().FirstOrDefault();
} if (extension != null)
var parser = new Org.BouncyCastle.X509.X509CertificateParser();
var x509Cert = parser.ReadCertificate(cert.GetRawCertData());
var subjects = x509Cert.GetSubjectAlternativeNames();
if (subjects == null)
{
yield break;
}
foreach (var subject in subjects)
{
if (subject is IList list)
{ {
if (list.Count >= 2 && list[0] is int nameType && nameType == 2) return extension.EnumerateDnsNames();
{
var dnsName = list[1]?.ToString();
if (dnsName != null)
{
yield return dnsName;
}
}
} }
} }
return Array.Empty<string>();
} }
/// <summary> /// <summary>

View File

@ -70,12 +70,10 @@ namespace FastGithub.HttpServer.Certs
var subjectName = new X500DistinguishedName($"CN={nameof(FastGithub)}"); var subjectName = new X500DistinguishedName($"CN={nameof(FastGithub)}");
this.caCert = CertGenerator.CreateCACertificate(subjectName, notBefore, notAfter); this.caCert = CertGenerator.CreateCACertificate(subjectName, notBefore, notAfter);
var privateKey = this.caCert.GetRSAPrivateKey()?.ExportRSAPrivateKey(); var privateKeyPem = this.caCert.GetRSAPrivateKey()?.ExportRSAPrivateKeyPem();
var privateKeyPem = PemEncoding.Write("RSA PRIVATE KEY", privateKey);
File.WriteAllText(this.CaKeyFilePath, new string(privateKeyPem), Encoding.ASCII); File.WriteAllText(this.CaKeyFilePath, new string(privateKeyPem), Encoding.ASCII);
var cert = this.caCert.Export(X509ContentType.Cert); var certPem = this.caCert.ExportCertificatePem();
var certPem = PemEncoding.Write("CERTIFICATE", cert);
File.WriteAllText(this.CaCerFilePath, new string(certPem), Encoding.ASCII); File.WriteAllText(this.CaCerFilePath, new string(certPem), Encoding.ASCII);
return true; return true;

View File

@ -6,7 +6,7 @@
<ItemGroup> <ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" /> <FrameworkReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Yarp.ReverseProxy" Version="1.1.0" /> <PackageReference Include="Yarp.ReverseProxy" Version="1.1.1" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -6,8 +6,7 @@
<ItemGroup> <ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" /> <FrameworkReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="DNS" Version="6.1.0" /> <PackageReference Include="DNS" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="6.0.0" />
<PackageReference Include="FastGithub.WinDiverts" Version="1.4.1" /> <PackageReference Include="FastGithub.WinDiverts" Version="1.4.1" />
</ItemGroup> </ItemGroup>

View File

@ -9,8 +9,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting.Systemd" Version="6.0.0" /> <PackageReference Include="Microsoft.Extensions.Hosting.Systemd" Version="7.0.0-rc*" />
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="6.0.0" /> <PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="7.0.0-rc*" />
<PackageReference Include="Serilog.Sinks.Network" Version="2.0.2.68" /> <PackageReference Include="Serilog.Sinks.Network" Version="2.0.2.68" />
<ProjectReference Include="..\FastGithub.DomainResolve\FastGithub.DomainResolve.csproj" /> <ProjectReference Include="..\FastGithub.DomainResolve\FastGithub.DomainResolve.csproj" />
<ProjectReference Include="..\FastGithub.HttpServer\FastGithub.HttpServer.csproj" /> <ProjectReference Include="..\FastGithub.HttpServer\FastGithub.HttpServer.csproj" />
@ -18,10 +18,10 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Serilog.Extensions.Hosting" Version="4.2.0" /> <PackageReference Include="Serilog.Extensions.Hosting" Version="5.0.1" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.0" /> <PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" /> <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.3.0" /> <PackageReference Include="Serilog.Settings.Configuration" Version="3.4.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>