4 changed files with 92 additions and 6 deletions
			
			
		- 
					54src/Shentun.Peis.HttpApi.Host/Filter/GenerateCertificateHelper.cs
 - 
					29src/Shentun.Peis.HttpApi.Host/PeisHttpApiHostModule.cs
 - 
					4src/Shentun.Peis.HttpApi.Host/Program.cs
 - 
					11src/Shentun.Peis.HttpApi.Host/appsettings.json
 
@ -0,0 +1,54 @@ | 
				
			|||
using Microsoft.IdentityModel.Tokens; | 
				
			|||
using System.IdentityModel.Tokens.Jwt; | 
				
			|||
using System.Security.Claims; | 
				
			|||
using System.Text; | 
				
			|||
using System; | 
				
			|||
using Volo.Abp.DependencyInjection; | 
				
			|||
using OpenIddict.Abstractions; | 
				
			|||
using System.Threading.Tasks; | 
				
			|||
using System.Threading; | 
				
			|||
using System.Linq; | 
				
			|||
using System.Collections.Generic; | 
				
			|||
using System.Collections.Immutable; | 
				
			|||
using System.Text.Json; | 
				
			|||
using System.ComponentModel.DataAnnotations; | 
				
			|||
using System.Security.Cryptography.X509Certificates; | 
				
			|||
using System.Security.Cryptography; | 
				
			|||
using System.IO; | 
				
			|||
 | 
				
			|||
namespace Shentun.Peis.Filter | 
				
			|||
{ | 
				
			|||
    /// <summary>
 | 
				
			|||
    /// 生成自己的证书文件(需要生成2个证书),并上传至站点目录
 | 
				
			|||
    /// </summary>
 | 
				
			|||
    public class GenerateCertificateHelper | 
				
			|||
    { | 
				
			|||
        public void GenerateEncryptionCertificate() | 
				
			|||
        { | 
				
			|||
            using var algorithm = RSA.Create(keySizeInBits: 2048); | 
				
			|||
 | 
				
			|||
            var subject = new X500DistinguishedName("CN=Fabrikam Encryption Certificate"); | 
				
			|||
            var request = new CertificateRequest(subject, algorithm, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1); | 
				
			|||
            request.CertificateExtensions.Add(new X509KeyUsageExtension(X509KeyUsageFlags.KeyEncipherment, critical: true)); | 
				
			|||
 | 
				
			|||
            var certificate = request.CreateSelfSigned(DateTimeOffset.UtcNow, DateTimeOffset.UtcNow.AddYears(10)); | 
				
			|||
 | 
				
			|||
            File.WriteAllBytes("encryption-certificate.pfx", certificate.Export(X509ContentType.Pfx, string.Empty)); | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        public void GenerateSigningCertificate() | 
				
			|||
        { | 
				
			|||
            using var algorithm = RSA.Create(keySizeInBits: 2048); | 
				
			|||
 | 
				
			|||
            var subject = new X500DistinguishedName("CN=Fabrikam Signing Certificate"); | 
				
			|||
            var request = new CertificateRequest(subject, algorithm, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1); | 
				
			|||
            request.CertificateExtensions.Add(new X509KeyUsageExtension(X509KeyUsageFlags.DigitalSignature, critical: true)); | 
				
			|||
 | 
				
			|||
            var certificate = request.CreateSelfSigned(DateTimeOffset.UtcNow, DateTimeOffset.UtcNow.AddYears(10)); | 
				
			|||
 | 
				
			|||
            File.WriteAllBytes("signing-certificate.pfx", certificate.Export(X509ContentType.Pfx, string.Empty)); | 
				
			|||
        } | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue