首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在浏览器上使用但在C#中不工作的重写SSL证书

在浏览器上使用但在C#中不工作的重写SSL证书
EN

Stack Overflow用户
提问于 2019-09-13 00:43:57
回答 1查看 591关注 0票数 0

由于SSL证书覆盖,我的C#应用程序无法连接到我们公司网络中的url。怎么才能修好呢?

我有一个web应用程序运行在两个不同的服务器上,每个服务器绑定到不同的子域。类似的东西;

  • 应用程序: WebApp,服务器: 1.2.3.4,主机名: a.myapp.com
  • 应用程序: WebApp,服务器: 5.6.7.8,主机名称: b.myapp.com

通常,我的本地C#应用程序可以通过subdmoain与两个服务器进行交互,没有任何问题。然而,当PC连接到公司网络时,本地C#应用程序可以连接到绑定到子域a.myapp.com的web应用程序,而不能连接到运行在b.myapp.com上的web应用程序(接收超时错误)。我认为这是因为公司over编写了现有的SSL证书,并注入了自己的SSL证书。

请注意,我可以通过浏览器(铬和IE)连接,没有任何问题。

到目前为止,我已经尝试过;

代码语言:javascript
代码运行次数:0
运行
复制
ServicePointManager
    .ServerCertificateValidationCallback += 
    (sender, cert, chain, sslPolicyErrors) => true;

代码语言:javascript
代码运行次数:0
运行
复制
 var handler = new HttpClientHandler()
            {
                ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }
            };
var client = new HttpClient(handler);

不起作用。

问题是,为什么浏览器可以在没有任何问题的情况下连接,但System.Net.Http.HttpClient却收到超时?有任何方法来模拟HttpClient中的浏览器证书流吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-16 09:57:12

问题是公司防火墙。显然,防火墙在.net客户端应用程序与server.It之间的SSL握手过程中丢弃包,这是因为.net客户端默认使用SChannel密码套件,而在防火墙上必须为这些密码suites.The提供一条规则,只有使用Bouncy城堡才能定制.net SSL密码套件。在手动设置SSL密码套件之后,它工作了。

Used this stackoverflow question as reference

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57916025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档