我正在使用IdentityServer3版本(2.5.4)进行当前项目,一切正常在本地计算机上运行(使用IIS和IIS Express)。
客户安装了.NET 4.5的Windows7嵌入式计算机(没有SP1!),我们创建了一个自签名SSL证书(使用当前主机名,而不是localhost),但它无法正常工作。我总是收到错误“无法从https://xyz/.well-known/openid-configuration获取文档”
配置有什么问题?
答案 0 :(得分:1)
我找到了解决方案,它与配置无关。 Windows 7 SP1的安装已修复它。
答案 1 :(得分:0)
在我们遇到此问题的几个案例中,主要与网络连接有关。
很少有事情可以帮助我们找出根本原因 -
从服务器上的浏览器访问“https://xyz/.well-known/openid-configuration”路由。
如果您无法访问该网址,则表示该服务器无法连接到Idserver安装。这是一个网络级问题。
如果您能够从托管依赖应用程序的服务器访问该URL,但依赖的应用程序会抛出错误 - >这意味着,在服务器上配置了代理。浏览器自动使用代理,您必须在依赖方应用程序中设置代理,如下所示:startup.cs
var request = WebRequest.Create(uri);
var myProxy = new WebProxy {Address = new Uri("proxy uri")};
request.Proxy = myProxy;
var response = request.GetResponse();
这将确保源自代码的所有http请求也将使用相同的代理。
如果上述方法没有帮助,请检查安装了Idserver的IIS是否允许使用TLS 1.0和1.1。出于安全目的,在某些服务器上禁用此功能。如果是这种情况,请使用以下代码使您的应用程序使用tls 1.2并且调用将成功
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;