解决linux netcore https请求使用自签名证书忽略安全检查方法

当前系统环境:centos7 x64. dotnet 2.0. 不管是 ServicePointManager.ServerCertificateValidationCallback = (a, b, c, d) => true; 还是: HttpClient httpClient = new HttpClient(new HttpClientHandler() { ServerCertificateCustomValidationCallback = (a, b, c, d) => true });

都会发生错误: 错误信息大致如下: (The handler does not support custom handling of certificates with this combination of libcurl (7.29.0) and its SSL backend ("NSS/3.28.4").) ---> System.PlatformNotSupportedException: The handler does not support custom handling of certificates with this combination of libcurl (7.29.0) and its SSL backend ("NSS/3.28.4"). at System.Net.Http.CurlHandler.SslProvider.SetSslOptionsForUnsupportedBackend(EasyRequest easy, ClientCertificateProvider certProvider) at System.Net.Http.CurlHandler.SslProvider.SetSslOptions(EasyRequest easy, ClientCertificateOption clientCertOption)

解决方案:

# yum update(可选)
# yum install openssl-devel gcc #安装openssl和gcc

# 安装指定版本的curl
# wget https://curl.haxx.se/download/curl-7.55.1.tar.gz
# tar -zxf curl-7.55.1.tar.gz
# cd curl-7.55.1
# ./configure --prefix=/usr/local/curl/ --without-nss --with-ssl=/usr/local/ssl/
# make
# make install

#备份原来的curl
mv /usr/bin/curl /usr/bin/curl.bak

#将安装的curl 创建软连
ln -s /usr/local/curl/bin/curl /usr/bin/curl
#  curl --version
#差不多输出下面的内容
#curl 7.55.1 (x86_64-pc-linux-gnu) libcurl/7.55.1 OpenSSL/1.0.2k zlib/1.2.7

#增加lib搜索目录
# vi /etc/ld.so.conf 
#增加
# /usr/local/curl/lib
# cat /etc/ld.so.conf 
差不多下面这样子
#
include ld.so.conf.d/*.conf
/usr/local/curl/lib

# 重新load配置
# ldconfig

参考文章: https://www.latoooo.com/xia_zhe_teng/368.htm https://segmentfault.com/a/1190000012282935 https://www.cnblogs.com/Anker/p/3209876.html https://github.com/dotnet/corefx/issues/9728#issuecomment-286251370

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python攻城狮

Django教程(四)- Django模板及进阶

需求:编写注册提交,“密码”与“确认密码”不一致,显示密码不一样。成功后在另一个页面显示 代码操作:

11420
来自专栏源码之家

让phpStudy在windows下也支持伪静态规则文件

20360
来自专栏Golang语言社区

golang模板template自定义函数用法示例

golang的模板十分强大,其中的unix管道风格函数调用很是喜欢. 模板中有很多内置可以参看pkg文档, 另外还可以实现自定义函数. 例子如下: packag...

65340
来自专栏IT笔记

Unable to connect to zookeeper server within timeout: 5000

本地项目远程连接190的zookeeper报错,提示无法连接。 查看一下防火墙,2181端口也加入了,关闭防火墙还是不行。 因为以前本地测试一直没有报错zo...

60370
来自专栏玩转JavaEE

Redis之AOF持久化

上篇文章和小伙伴们聊了使用快照的方式实现redis数据的持久化,这只是持久化的一种方式,本文我们就来看看另一种持久化方式,AOF(append-only fil...

11100
来自专栏技术博文

Redis持久化

Redis 提供了多种不同级别的持久化方式: RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。 AO...

37340
来自专栏散尽浮华

redis持久化策略梳理及主从环境下的策略调整记录

redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。可以不定期的通过异步方式保存到磁盘上(即“半持久化模式”...

534100
来自专栏跟着阿笨一起玩NET

winform系统自动登录实现

转载:http://www.cnblogs.com/wuhuacong/archive/2012/08/21/2648339.html

20010
来自专栏晓晨的专栏

.NET Core 控制台应用程序使用异步(Async)Main方法

可以看到报错了,提示我们是C# 7.1 的特性。我们有两种方法可以解决,其实最后都是殊途同归,只是操作不一样而已。

19520
来自专栏晓晨的专栏

.NET Core 控制台应用程序使用异步(Async)Main方法

11830

扫码关注云+社区

领取腾讯云代金券