HttpClient 请求 Https 报错的SSL证书异常的问题,请使用以下方法解决。

方法一,非长久之计,有失效风险(已经测试过,晚上好好的,白天就异常)

export DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0;
# 可不运行以下语句
dotnet build

方法二,应该比较稳妥一些。 通过OpenSSL

# 检查OpenSSL是否安装 如果没安装就去安装
openssl version -a


# 输出 下面一大段,最重要的是OPENSSLDIR: "/etc/pki/tls"
----
OpenSSL 1.0.2k-fips  26 Jan 2017
built on: reproducible build, date unspecified
platform: linux-x86_64
options:  xxxxxxxxxxxxxxxxxxxxxxxxxxxx
compiler: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
OPENSSLDIR: "/etc/pki/tls"
engines:  rdrand dynamic
---

# 输入
cp /etc/pki/tls/cert.pem /usr/local/openssl/

# 解决

由于赶时间在进入ssh终端后直接运行以下语句,发现Configuration读取配置项一直是未空。

IConfiguration对象已经被注入到Ioc容器中。

dotnet xxx.dll

经过研究后发现,必须要先进入Dll的工作目录运行Dll才有效。
经过研究后发现,必须要先进入Dll的工作目录运行Dll才有效。
经过研究后发现,必须要先进入Dll的工作目录运行Dll才有效。

工作目录:存放Dll运行程序的目录

假设 app.dll 存放于 /home/www/app.dll

# 正确示例
# 这个时候,Configuration配置文件才被读取到
cd /home/www

dotnet app.dll            #正确,appSetting.json配置信息可读取
dotnet /home/www/app.dll  #正确,appSetting.json配置信息可读取

# 错误示例 假设当前目录为 /home

cd /home

dotnet app.dll # 错误, /home/app.dll 不存在。应该是 /home/www/app.dll

dotnet /home/www/app.dll # 程序可运行,但是appSetting.json配置信息读取不到。

使用服务形式启动Asp.Net Core站点,出现异常

如果运行过export DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0;,请不要使用sudo来启动服务

# 错误示例
sudo systemctl start app.service #异常,报HttpClient请求Https时候SSL证书错误。
# 正确示例
systemctl start app.service # 正常,程序正常启动。HttpClient请求Https成功。

The End。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值