尝试连接到HTTPS代理后面的WCF API时遇到以下错误:
名称为"CN = hostname"的服务器证书未通过身份验证,因为其指纹("X")与端点标识("Y")中指定的不匹配.因此,当前的HTTPS请求失败.请更新客户端上使用的端点标识或服务器使用的证书.
其中X是代理使用的证书的指纹,Y是服务使用的证书的指纹
问题是我设法从STS获得一个令牌,但之后我无法执行任何Web服务调用.
我通过使用本地SSL代理在我的PC上重现了该问题,代理上使用的证书在我的PC上是可信任的.使用HTTP时一切正常.
我现在搜索了一个解决方案好几天了,我注意到这篇KB文章接近我的问题但不再适用了(我正在运行示例和.Net 4.5中的服务器):https://support.microsoft.com/ EN-US/KB/2564823
我错过了什么?
这是代码:
class Program
{
static void Main(string[] args)
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-us");
string serverUrl = ConfigurationManager.AppSettings["ServerURL"];
GenericXmlSecurityToken token = GetToken(serverUrl);
Console.WriteLine("Token Received");
Console.WriteLine(token);
TestServiceClient client = CreateClient(serverUrl, token);
try
{
client.SearchSomething();
Console.WriteLine("SearchSomething succeeded");
}
catch (Exception e)
{
Console.WriteLine("SearchSomething failed :" + e);
}
Console.ReadLine();
}
private static TestServiceClient CreateClient(string serverUrl, GenericXmlSecurityToken token)
{
var binding = new WS2007FederationHttpBinding(WSFederationHttpSecurityMode.Message)
{
MaxReceivedMessageSize = int.MaxValue,
MaxBufferPoolSize …Run Code Online (Sandbox Code Playgroud)