前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ASP.NET Core 2.1 : 十三.httpClient.GetAsync 报SSL错误的问题

ASP.NET Core 2.1 : 十三.httpClient.GetAsync 报SSL错误的问题

作者头像
FlyLolo
发布2018-08-20 16:46:09
1K0
发布2018-08-20 16:46:09
举报
文章被收录于专栏:Core NetCore Net

不知什么时候 ,出现了这样的一个奇怪问题,简单的httpClient.GetAsync("xxxx")居然报错了。

一、问题描述

把原来的程序从2.0升级到2.1,突然发现原本正常运行的httpClient.GetAsync("xxxx")居然不工作了。

为了排除项目中其他引用的干扰,新建了一个干净的2.1的项目,Main里直接调用

代码语言:javascript
复制
var client = new HttpClient();
var task = client.GetAsync(url);

依然是报错。

错误信息如下:

代码语言:javascript
复制
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的时候出错了,重新安装后依然是这样。

系统环境:

代码语言:javascript
复制
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可以正常运行:

代码语言:javascript
复制
dotnet  ......xx/xx/test.dll

但通过 /etc/systemd/system/kestrel-test.service 这样的服务启动的情况下依然报错。

每次都通过dotnet命令运行肯定是不合适的,继续想办法。

二、解决方法

这是因为在 /etc/ssl/certs 目录下存在没有读取权限或者已损坏的文件导致的,查看一下这个文件夹确实最近几天有新文件写入,可能是最近安装什么进来的吧。

没有一个个的试验,临时把这个文件夹的公共权限设置了可读,可以正常运行了,算是个临时方法吧,这样开权限肯定不是一个好办法,

据说在新版本中会修复, 重新刷了一下 yum update 也没有新的,官网看看也还没2.1.3的runtime。希望新版本中 早点把这个问题修复。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-08-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、问题描述
    • 为了排除项目中其他引用的干扰,新建了一个干净的2.1的项目,Main里直接调用
      • 偶然发现,通过dotnet命令运行对应的dll可以正常运行:
      • 二、解决方法
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档