【发布时间】:2019-04-26 12:01:43
【问题描述】:
我必须连接到 REST Web 服务,并使用证书来验证自己。
当我从公司网络外部连接并且不使用代理服务器时,一切正常。
问题是我必须使用我们网络内的服务,而我必须使用代理服务器。 当我从网络内尝试时,我只会得到“401 - 未经授权”
private static void RestWithCert(string certificatePath,string baseUrl,string method)
{
HttpClientHandler handler = new HttpClientHandler();
//when trying the code OUTside our company network I remove the proxy below
handler.Proxy = new WebProxy("http://proxy.company.dk");
handler.ClientCertificates.Add(new X509Certificate2(certificatePath, "password"));
HttpClient client = new HttpClient(handler);
client.BaseAddress = new Uri(baseUrl);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = client.GetAsync(method).Result;
var status = response.StatusCode;
}
在网络之外,没有代理:状态 = OK
在网络内部,使用代理:状态 = 未授权
在网络内部,没有代理:连接超时
我无法控制代理或我尝试访问的网络服务
发生了什么?代理是否拦截了证书并替换它?
【问题讨论】:
-
嗨@FlyingHippo,你检查答案了吗?你能解决代理的问题吗?
-
嗨@pedrofb 很抱歉没有尽快回复。看来你的理论是对的。我已经联系了我们的网络提供商,他们正在调查。但还没有解决方案
标签: ssl proxy certificate