我对当前项目使用IdentityServer3版本(2.5.4),在本地计算机(使用IIS和IIS Express)上一切正常。IdentityServer3无法从
客户安装了.NET 4.5的Windows7嵌入式机器(无SP1!),我们创建了一个自签名的SSL证书(使用当前主机名,不是localhost),但它不起作用。我总是收到错误“无法获取文档:https://xyz/.well-known/openid-configuration”
配置有什么问题?
我对当前项目使用IdentityServer3版本(2.5.4),在本地计算机(使用IIS和IIS Express)上一切正常。IdentityServer3无法从
客户安装了.NET 4.5的Windows7嵌入式机器(无SP1!),我们创建了一个自签名的SSL证书(使用当前主机名,不是localhost),但它不起作用。我总是收到错误“无法获取文档:https://xyz/.well-known/openid-configuration”
配置有什么问题?
我找到了解决方案,它无关的配置。 Windows 7 SP1的安装修复了它。
在我们遇到这个问题的几个案例中,主要涉及到网络连接。
很少有事情,帮助我们找出根源 -
访问从服务器上的浏览器“https://xyz/.well-known/openid-configuration”的路线。
如果您无法访问url,则表示服务器无法连接到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请求也将使用相同的代理。
如果上述不起作用,请检查IIS服务器的安装位置是否允许TLS 1.0和1.1。出于安全考虑,在某些服务器上禁用此功能。如果是这样的情况下,使用下面的代码,使乌拉圭回合的应用程序使用TLS 1.2,调用将成功
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
我收到错误,当我尝试直接在服务器上打开链接。我不认为这是一个网络问题。我们在Startup.cs(配置方法内部)'System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;'中添加了以下代码,但它仍然不起作用。它与Windows 7 Embedded Standard(无SP1)有关吗? – pbachman
这可能与idServer设置有关。请检查idserver安装web文件夹中的trace.log文件。日志文件会导致您遇到实际问题。 – jkr
你是指什么设置或安装文件夹?在服务器上只是我们idServer项目的部署版本(包括IdentityServer3 DLL)。是否有任何先决条件,应该安装在服务器上?我可以打开IdentityServer3的起始页面(通过https://主机名称),但是我无法打开https://hostname-of-the-server/.well-known/openid-configuration上的链接服务器上的浏览器。 – pbachman