ASP.NET Core 2.1 : 十三.httpClient.GetAsync 报SSL错误的问题
2018-08-10 09:00
1106 查看
不知什么时候 ,出现了这样的一个奇怪问题,简单的httpClient.GetAsync("xxxx")居然报错了。
一、问题描述
把原来的程序从2.0升级到2.1,突然发现原本正常运行的httpClient.GetAsync("xxxx")居然不工作了。
为了排除项目中其他引用的干扰,新建了一个干净的2.1的项目,Main里直接调用
var client = new HttpClient(); var task = client.GetAsync(url);
依然是报错。
错误信息如下:
System.AggregateException: One or more errors occurred. (The SSL connection could not be established, see inner exception.) ---> System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception. ---> Interop+Crypto+OpenSslCryptographicException: error:2006D002:BIO routines:BIO_new_file:system lib at Interop.Crypto.CheckValidOpenSslHandle(SafeHandle handle) at Internal.Cryptography.Pal.StorePal.LoadMachineStores() at *****************************************
原本以为是升级runtime的时候出错了,重新安装后依然是这样。
系统环境:
OS:CentOS 7 Host (useful for support): Version: 2.1.2 Commit: 811c3ce6c0 .NET Core runtimes installed: Microsoft.AspNetCore.All 2.1.2 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All] Microsoft.AspNetCore.App 2.1.2 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 2.1.2 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
偶然发现,通过dotnet命令运行对应的dll可以正常运行:
dotnet ......xx/xx/test.dll
但通过 /etc/systemd/system/kestrel-test.service 这样的服务启动的情况下依然报错。
每次都通过dotnet命令运行肯定是不合适的,继续想办法。
二、解决方法
这是因为在 /etc/ssl/certs 目录下存在没有读取权限或者已损坏的文件导致的,查看一下这个文件夹确实最近几天有新文件写入,可能是最近安装什么进来的吧。
没有一个个的试验,临时把这个文件夹的公共权限设置了可读,可以正常运行了,算是个临时方法吧,这样开权限肯定不是一个好办法,
据说在新版本中会修复, 重新刷了一下 yum update 也没有新的,官网看看也还没2.1.3的runtime。希望新版本中 早点把这个问题修复。
相关文章推荐
- ASP.Net Core2.1中的HttpClientFactory系列二:集成Polly处理瞬态故障
- HttpClient读取ASP.NET Web API错误信息的简单方法
- Asp.net core 学习笔记 ( HttpClient )
- HttpClient_javax.net.ssl.SSLHandshakeException: sun.security.validator 问题解决,与环境有关
- 基于 ASP.NET Core 2.1 的 Razor Class Library 实现自定义错误页面的公用类库
- iis7 发布mvc3 遇到的HTTP错误 403.14-Forbidden Web 服务器被配置为不列出此目录的内容及Login on failed for "IIS APPPOOL\ASP.NET v4.0"问题
- Asp.Net Core IIS发布后PUT、DELETE请求错误405.0 - Method Not Allowed 因为使用了无效方法(HTTP 谓词)
- 问题:调用 ASP.Net Core WebAPI的HTTP POST方法时,从 [FromBody] 中读取的 MongoDB GeoJsonObjectModel成员总是null
- ASP.NET Core Web API处理HttpResponseMessage类型返回值的问题
- Asp.Net Core get client IP
- 解决 ASP.NET Core 自定义错误页面对 Middleware 异常无效的问题
- asp.net core中负载均衡场景下http重定向https的问题
- iis7 发布mvc3 遇到的HTTP错误 403.14-Forbidden Web 服务器被配置为不列出此目录的内容及Login on failed for "IIS APPPOOL\ASP.NET v4.0"问题
- Win7部署asp.net网站问题---HTTP 错误 500.0 - Internal Server Error 调用 LoadLibraryEx 失败
- asp.net mvc中在使用async的时候HttpContext为null的问题
- asp.net core中负载均衡场景下http重定向https的问题
- Web 应用程序的问题 (web.config 错误) HTTP 500.19 与 IIS7.5 和 asp.net v2
- Asp.net使用httpHandlers报404的问题
- HttpClient的”javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated”异常
- 创建ASP.NET程序时候发生错误 HTTP/1.0 500 Server Error