.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#中,可以通过以下方式设置快捷键: 在窗体上设置快捷键 在窗体上选中某个控件或者整个窗体,然后在属性窗口中找到“ShortcutKeys”属性,选择想要设置的快捷键即可。比如,给窗体设置快捷键“Ctrl+S”来保存文件,代码如下: private void Form1_KeyDown(object s…

    C# 2023年6月6日
    00
  • 利用JQuery直接调用asp.net后台的简单方法

    当使用 ASP.NET 进行 Web 开发时,常常需要通过 Ajax 技术实现与后台服务器的数据交互,实现无刷新或部分刷新的效果。JQuery 是一个流行的 JavaScript 库,它可以轻松地实现与后台 ASP.NET 及其他服务器端语言的交互。 下面是几个简单方法,利用 JQuery 直接调用 ASP.NET 后台程序以及如何从后台程序返回数据。 一、…

    C# 2023年6月3日
    00
  • C#正则表达式之Regex类用法详解

    C#正则表达式之Regex类用法详解 正则表达式是一种强大的文本处理工具,常用于文本匹配、替换、过滤等操作。在C#中,我们可以使用Regex类来操作正则表达式。 Regex类的基本用法 Regex类提供了多个静态方法和实例方法,用于操作正则表达式。其中最常用的是Match和MatchCollection方法。 Match方法 Match方法用于查找第一个匹配…

    C# 2023年6月7日
    00
  • C# 常用公共方法

    C#常用公共方法 什么是C#常用公共方法? 在C#中,公共方法是可以被所有对象访问的方法,这些方法一般是在.NET基础类库(BCL)中定义的。它们为开发人员提供了在应用程序中处理常见操作和函数的方便方法。在实际的编程过程中,开发人员可以调用这些公共方法,并且不需要重新实现一个新的方法来满足自己的需求。 C#常用公共方法列表 下面是C#中常用的公共方法列表: …

    C# 2023年5月15日
    00
  • LINQ教程之LINQ操作语法

    欢迎来到本站的LINQ教程,今天我们将学习LINQ操作语法,帮助您更好地理解和使用LINQ。 什么是LINQ操作语法 LINQ操作语法(LINQ Query Syntax)是一种使用类似于SQL语句的查询语法快速查询数据的方法。 它是LINQ的一部分,使C#和VB.NET开发人员能够轻松地使用LINQ。 LINQ操作语法允许开发人员快速、易读地创建查询,包含…

    C# 2023年6月1日
    00
  • C#中Dictionary类使用实例

    下面是“C#中Dictionary类使用实例”的完整攻略,包含以下几个方面的内容: 什么是Dictionary类 如何创建一个Dictionary对象 如何添加和访问字典中的元素 如何遍历字典 示例说明 1. 什么是Dictionary类 Dictionary类是C#中用于表示键值对的泛型集合类。每个键都与一个值相关联,因此可以通过键访问值。 2. 如何创建…

    C# 2023年5月31日
    00
  • C#实现23种常见的设计模式的示例详解

    使用Markdown编写“C#实现23种常见的设计模式的示例详解”的完整攻略可以如下: C#实现23种常见的设计模式的示例详解 什么是设计模式 设计模式指的是,在特定情况下,针对某种问题所提供的可行解决方案。也就是说,设计模式是对问题的一种解决方案,而不是代码的一种实现。它们是经过验证、被证明是有效的解决方案,并且在不同的场景下可以复用的。 设计模式的分类 …

    C# 2023年6月6日
    00
  • C# 中的List.Sort()–集合排序方法全面解析

    C#中的List.Sort()–集合排序方法全面解析 1. 概述 在C#开发中,List 是常见的一种集合类型,其提供了一个 Sort() 方法来实现对集合的排序。本篇文章主要介绍 List 中的 Sort() 方法的功能及相关使用技巧。 2. 功能说明 List 中的Sort()方法用于对集合进行排序。默认情况下,Sort()方法按照升序对集合进行排序,…

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