.NET Core配置TLS Cipher(套件)的详细过程

.NET Core配置TLS Cipher(套件)的详细过程

TLS Cipher 是一种加密套件,用于保护网络通信的安全性。在 .NET Core 中,可以配置 TLS Cipher 套件来提高应用程序的安全性。本攻略将详细介绍如何配置 TLS Cipher 套件。

配置 TLS Cipher 套件

在 .NET Core 中,可以使用以下代码配置 TLS Cipher 套件:

```csharp
using System.Security.Authentication;
using System.Security.Cryptography.X509Certificates;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Server.Kestrel.Https;
using Microsoft.Extensions.Hosting;

public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.ConfigureKestrel(options =>
            {
                options.ListenAnyIP(5000, listenOptions =>
                {
                    listenOptions.UseHttps(new HttpsConnectionAdapterOptions
                    {
                        SslProtocols = SslProtocols.Tls12,
                        ServerCertificate = new X509Certificate2("certificate.pfx", "password"),
                        CipherSuitesPolicy = new CipherSuitesPolicy
                        {
                            // 配置 TLS Cipher 套件
                            // 可以根据需要添加或删除套件
                            // 这里只列出了一些常用的套件
                            // 更多套件可以参考 https://docs.microsoft.com/en-us/dotnet/api/system.security.authentication.sslprotocols?view=netcore-3.1
                            // 注意:不推荐使用 RC4 和 3DES 等弱加密套件
                            // 推荐使用 AES 和 ChaCha20 等强加密套件
                            // 以下是一些常用的强加密套件
                            // CipherSuitesPolicy.Best = TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_GCM_SHA256
                            // CipherSuitesPolicy.BestHttp2 = TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_GCM_SHA256
                            // CipherSuitesPolicy.Default = TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
                            // CipherSuitesPolicy.DefaultSsl3 = TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA
                            // CipherSuitesPolicy.SystemDefault = 系统默认的 TLS Cipher 套件
                            // CipherSuitesPolicy.None = 不使用 TLS Cipher 套件
                            // CipherSuitesPolicy.UnsafeLegacy = 使用不安全的 TLS Cipher 套件
                            // CipherSuitesPolicy.NoNull = 不允许使用空加密套件
                            // CipherSuitesPolicy.NoNullNoEncryption = 不允许使用空加密套件和无加密套件
                            // CipherSuitesPolicy.NoEncryption = 不允许使用无加密套件
                            // CipherSuitesPolicy.CustomPolicy = 自定义 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicy = 预定义的 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyBasic = 预定义的基本 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyIntermediate = 预定义的中级 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyStrict = 预定义的严格 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyLegacy = 预定义的遗留 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyFips = 预定义的 FIPS TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicySystem = 预定义的系统 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13 = 预定义的 TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13Basic = 预定义的基本 TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13Intermediate = 预定义的中级 TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13Strict = 预定义的严格 TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13Legacy = 预定义的遗留 TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13Fips = 预定义的 FIPS TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13System = 预定义的系统 TLS 1.3 Cipher 套件
                            // 以下是一个示例,使用 TLS_AES_256_GCM_SHA384 和 TLS_AES_128_GCM_SHA256 两个强加密套件
                            // 更多套件可以参考 https://docs.microsoft.com/en-us/dotnet/api/system.security.authentication.sslprotocols?view=netcore-3.1
                            // 注意:不推荐使用 RC4 和 3DES 等弱加密套件
                            // 推荐使用 AES 和 ChaCha20 等强加密套件
                            // 以下是一些常用的强加密套件
                            // CipherSuitesPolicy.Best = TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_GCM_SHA256
                            // CipherSuitesPolicy.BestHttp2 = TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_GCM_SHA256
                            // CipherSuitesPolicy.Default = TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
                            // CipherSuitesPolicy.DefaultSsl3 = TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA
                            // CipherSuitesPolicy.SystemDefault = 系统默认的 TLS Cipher 套件
                            // CipherSuitesPolicy.None = 不使用 TLS Cipher 套件
                            // CipherSuitesPolicy.UnsafeLegacy = 使用不安全的 TLS Cipher 套件
                            // CipherSuitesPolicy.NoNull = 不允许使用空加密套件
                            // CipherSuitesPolicy.NoNullNoEncryption = 不允许使用空加密套件和无加密套件
                            // CipherSuitesPolicy.NoEncryption = 不允许使用无加密套件
                            // CipherSuitesPolicy.CustomPolicy = 自定义 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicy = 预定义的 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyBasic = 预定义的基本 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyIntermediate = 预定义的中级 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyStrict = 预定义的严格 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyLegacy = 预定义的遗留 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyFips = 预定义的 FIPS TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicySystem = 预定义的系统 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13 = 预定义的 TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13Basic = 预定义的基本 TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13Intermediate = 预定义的中级 TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13Strict = 预定义的严格 TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13Legacy = 预定义的遗留 TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13Fips = 预定义的 FIPS TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13System = 预定义的系统 TLS 1.3 Cipher 套件
                            // 以下是一个示例,使用 TLS_AES_256_GCM_SHA384 和 TLS_AES_128_GCM_SHA256 两个强加密套件
                            // 更多套件可以参考 https://docs.microsoft.com/en-us/dotnet/api/system.security.authentication.sslprotocols?view=netcore-3.1
                            // 注意:不推荐使用 RC4 和 3DES 等弱加密套件
                            // 推荐使用 AES 和 ChaCha20 等强加密套件
                            // 以下是一些常用的强加密套件
                            // CipherSuitesPolicy.Best = TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_GCM_SHA256
                            // CipherSuitesPolicy.BestHttp2 = TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_GCM_SHA256
                            // CipherSuitesPolicy.Default = TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
                            // CipherSuitesPolicy.DefaultSsl3 = TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA
                            // CipherSuitesPolicy.SystemDefault = 系统默认的 TLS Cipher 套件
                            // CipherSuitesPolicy.None = 不使用 TLS Cipher 套件
                            // CipherSuitesPolicy.UnsafeLegacy = 使用不安全的 TLS Cipher 套件
                            // CipherSuitesPolicy.NoNull = 不允许使用空加密套件
                            // CipherSuitesPolicy.NoNullNoEncryption = 不允许使用空加密套件和无加密套件
                            // CipherSuitesPolicy.NoEncryption = 不允许使用无加密套件
                            // CipherSuitesPolicy.CustomPolicy = 自定义 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicy = 预定义的 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyBasic = 预定义的基本 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyIntermediate = 预定义的中级 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyStrict = 预定义的严格 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyLegacy = 预定义的遗留 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyFips = 预定义的 FIPS TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicySystem = 预定义的系统 TLS Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13 = 预定义的 TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13Basic = 预定义的基本 TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13Intermediate = 预定义的中级 TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13Strict = 预定义的严格 TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13Legacy = 预定义的遗留 TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13Fips = 预定义的 FIPS TLS 1.3 Cipher 套件
                            // CipherSuitesPolicy.PredefinedPolicyTls13System = 预定义的系统 TLS 1.3 Cipher 套件
                            // 以下是一个示例,使用 TLS_AES_256_GCM_SHA384 和 TLS_AES_128_GCM_SHA256 两个强加密套件
                            // 更多套件可以参考 https://docs.microsoft.com/en-us/dotnet/api/system.security.authentication.sslprotocols?view=netcore-3.1
                            // 注意:不推荐使用 RC4 和 3DES 等弱加密套件
                            // 推荐使用 AES 和 ChaCha20 等强加密套件
                            // 以下是一些常用的强加密套件
                            // CipherSuitesPolicy.Best = TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_GCM_SHA256
                            // CipherSuitesPolicy.BestHttp2 = TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_GCM_SHA256
                            // CipherSuitesPolicy.Default = TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
                            // CipherSuitesPolicy.DefaultSsl3 = TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:.NET Core配置TLS Cipher(套件)的详细过程 - Python技术站

(0)
上一篇 2023年5月17日
下一篇 2023年5月17日

相关文章

  • visual studio 2019使用net core3.0创建winform无法使用窗体设计器

    Visual Studio 2019使用.NET Core 3.0创建WinForm无法使用窗体设计器攻略 在本攻略中,我们将详细讲解如何在Visual Studio 2019中使用.NET Core 3.0创建WinForm应用程序,并解决无法使用窗体设计器的问题。我们将提供两个示例说明。 步骤一:安装.NET Core 3.0 SDK 在Visual S…

    C# 2023年5月17日
    00
  • linq中的元素操作符

    LINQ中的元素操作符 LINQ(Language Integration Query)提供了许多强大的操作符,以便于我们对集合数据做各种各样的操作。在LINQ中,元素操作符(Element Operators)允许我们根据单个元素来访问或检查一个集合。 First First操作符返回序列中第一个元素,它也可以根据一个指定的条件筛选元素。如果序列为空,该操…

    C# 2023年6月1日
    00
  • asp.net gridview 72般绝技第1/2页

    ASP.NET GridView 72般绝技攻略 什么是 ASP.NET GridView? ASP.NET GridView 是 ASP.NET 网站开发中非常常用的控件之一。它可以方便地在网页上展示数据,并且提供了很多丰富的特性,如排序、分页、过滤、编辑等。 GridView 的基本用法 GridView 的基本用法非常简单,只需要在 ASP.NET 网…

    C# 2023年5月31日
    00
  • SpringBoot与velocity的结合的示例代码

    下面是关于“SpringBoot与velocity的结合的示例代码”的完整攻略及示例说明: 1. 环境准备 在开始之前,需要确保以下环境已经准备完整: JDK 1.8或以上 Maven SpringBoot Velocity 如果您还没安装或搭建好以上环境,请先进行安装和配置。 2. 引入依赖 在SpringBoot项目的pom.xml文件中,加入以下依赖:…

    C# 2023年5月31日
    00
  • ASP.NET Core MVC 修改视图的默认路径及其实现原理解析

    ASP.NET Core MVC 修改视图的默认路径及其实现原理解析 在ASP.NET Core MVC中,视图是用于呈现HTML内容的模板。默认情况下,视图文件存储在/Views文件夹中。但是,有时候需要将视图文件存储在不同的位置,例如在多个项目之间共享视图文件。本攻略将介绍如何修改ASP.NET Core MVC中视图的默认路径,并解析其实现原理。 步骤…

    C# 2023年5月17日
    00
  • C#预处理指令之#line,#pragma warning 详细解析

    C#预处理指令之#line,#pragma warning 详细解析 在C#中,预处理指令(Preprocessor directives)是以井号 (#) 开头的,用于控制编译过程的指令。预处理指令会在编译代码之前就被处理,与实际代码无关。这些指令用于给编译器提供附加的信息或指令,以执行不同的编译选项。 本文将详细讲解两条常用的预处理指令:#line 和 …

    C# 2023年6月1日
    00
  • C#中怎样从指定字符串中查找并替换字符串?

    在C#中,我们可以使用Replace方法来查找和替换指定字符串中的内容。它的语法结构如下所示: string.Replace(string oldValue, string newValue); 其中,oldValue参数是要查找并替换的旧字符串值,newValue参数是要替换成的新字符串值。 以下是一个示例,我们希望将字符串中的”hello”替换为”hi”…

    C# 2023年6月6日
    00
  • NancyFx框架检测任务管理器详解

    NancyFx框架检测任务管理器详解 简介 NancyFx框架是一个轻量级的、无痛点的Web框架,它是一个Microsoft .NET平台上的开源项目。它非常简单易用,可以让你快速构建Web应用程序。 在本文中,我们将介绍如何使用NancyFx框架来检测任务管理器,并且详细地讲解这个过程。 步骤 以下是如何使用NancyFx框架来检测任务管理器的详细过程: …

    C# 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部