.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日

相关文章

  • c#委托详解和和示例分享

    C#委托详解 什么是委托 在C#语言中,委托是指向一个或多个方法的引用,它允许执行方法的实例动态绑定到一个委托变量上。简单理解委托,可以将它视为让我们能够以一种更加灵活的方式处理方法的一种方式。在C#中,委托类属于System命名空间下。 委托的定义 委托的定义语法为: delegate <return type> <delegate na…

    C# 2023年5月15日
    00
  • 详解.NET 6如何实现获取当前登录用户信息

    获取当前登录用户信息是Web应用程序中常见的功能之一。在.NET 6中,可以使用ASP.NET Core身份验证功能来实现获取当前登录用户信息。下面是详细的攻略。 添加ASP.NET Core身份验证 在.NET 6中,添加ASP.NET Core身份验证功能非常简单,只需在应用程序的Startup.cs文件中的ConfigureServices方法中添加以…

    C# 2023年5月31日
    00
  • C#使用Chart绘制曲线

    下面我将向你详细讲解如何使用C#中的Chart组件绘制曲线。 一、使用Chart组件绘制曲线 Chart组件是Windows Forms中的一个强大的绘图组件,提供了各种绘图类型的支持,包括折线图、柱状图、饼图等。对于绘制曲线,我们可以使用折线图。 1. 添加Chart控件 首先,在Visual Studio中创建一个Windows Forms应用程序,并添…

    C# 2023年6月8日
    00
  • ASP.NET Core MVC中的模型(Model)

    在本攻略中,我们将详细讲解ASP.NET Core MVC中的模型(Model),并提供两个示例说明。 什么是模型(Model)? 在ASP.NET Core MVC中,模型(Model)是表示应用程序数据的类或对象。模型通常包含与数据库表或其他数据源中的数据相对应的属性。模型还可以包含用于验证数据的方法和属性。 如何创建模型(Model)? 在ASP.NE…

    C# 2023年5月17日
    00
  • Linux上使用Docker部署ASP.NET Core应用程序

    在 Linux 上使用 Docker 部署 ASP.NET Core 应用程序是一种常见的部署方式,可以提高应用程序的可移植性和可扩展性。以下是 Linux 上使用 Docker 部署 ASP.NET Core 应用程序的完整攻略: 步骤一:创建 ASP.NET Core 应用程序 首先,需要创建一个 ASP.NET Core 应用程序。可以使用以下命令在 …

    C# 2023年5月17日
    00
  • C# File.Create – 创建文件

    File.Create 方法是 C# 中一个常用的文件操作方法,它的作用是在指定路径下创建一个文件并返回一个文件的文件流对象。使用方法如下: 方法原型 public static FileStream Create(string path); 参数说明 path :要创建的文件的完整路径,包括文件名和后缀名。 返回值 FileStream:文件流对象,表示文…

    C# 2023年4月19日
    00
  • 协定需要会话,但是绑定“BasicHttpBinding”不支持它或者因配置不正确而无法支持它

    “协定需要会话,但是绑定“BasicHttpBinding”不支持它或者因配置不正确而无法支持它”的解决方法 在使用WCF服务时,有时会遇到“协定需要会话,但是绑定“BasicHttpBinding”不支持它或者因配置不正确而无法支持它”的错误。这个错误通常是由于绑定配置不正确或未启用会话支持导致的。在本文中,我们将提供一些解决方案来解决这个问题,并提供两个…

    C# 2023年5月15日
    00
  • C#使用dynamic类型访问JObject对象

    访问JObject对象是Json.NET中一项常见任务,通过C#的dynamic类型来达到目的。 首先,我们需要安装Newtonsoft.Json NuGet包。可以在Visual Studio中使用“项目”菜单中的“管理NuGet程序包”菜单选项,在“已安装”选项卡中查看已安装的包,并在“浏览”选项卡中搜索并安装Newtonsoft.Json包。 接下来,…

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