gpt4 book ai didi

c# - .NET Core - HTTPClient - Ubuntu 20.04 上的 dh key 太小

转载 作者:行者123 更新时间:2023-12-04 18:26:33 27 4
gpt4 key购买 nike

我想问一下是否有办法绕过 Ubuntu 的安全检查,这样我就可以在我的 .NET Core 客户端应用程序中使用小 key 获取网站?我收到 error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small 异常。

问题是在 Ubuntu 20.04 中,openSSL 的安全级别设置为 2 并且(目前,希望有人会给出 my question on Ask Ubuntu 的答案)我不知道如何将其设置为一个较低的值。

使用 curl 时会出现同样的错误,除非提供了 --ciphers 'DEFAULT:!DH' 参数,所以我假设问题的根本原因在于操作系统本身。

我不控制网站的服务器,因此不能更改其安全设置。

到目前为止,我从 C# 方面尝试过的内容:

serviceCollection.AddHttpClient<IInterface, IImplementation>()
.ConfigureHttpMessageHandlerBuilder(messageHandlerBuilder =>
{
messageHandlerBuilder.PrimaryHandler = new HttpClientHandler
{
ServerCertificateCustomValidationCallback = (m, c, ch, e) => true
};
});

using var httpClient = new HttpClient();
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;

var websiteContent = await httpClient.GetStreamAsync(url);

在这种情况下,安全性不是什么大问题,所以我可以在这里使用任何肮脏的 hack。

如有任何帮助,我们将不胜感激。

最佳答案

感谢 answer received on Ask Ubuntu,我通过以下方式解决了这个问题:

  • 复制openssl.cnf文件
  • 在复制文件的顶部添加openssl_conf = default_conf
  • 最后添加:
    [ default_conf ]

ssl_conf = ssl_sect

[ssl_sect]

system_default = ssl_default_sect

[ssl_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT:@SECLEVEL=1

  • 运行项目时将 OPENSSL_CONF 环境变量设置为更改后的配置文件的路径

关于c# - .NET Core - HTTPClient - Ubuntu 20.04 上的 dh key 太小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61517347/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com