asp.net - IdentityServer4 - 发生安全错误

标签 asp.net ssl asp.net-web-api restful-authentication identityserver4

我将 IdentityServer4 与 ASP .NET Core WebAPI 结合使用,但在以编程方式访问发现页面时遇到问题

var disco = await DiscoveryClient.GetAsync("https://<api>:1337");

如果我在我的本地主机上托管 API(IdentityServer 和 protected API),一切正常,我什至不需要使用 https....可能它不会抛出 ..需要 HTTPS 如果主机名是 localhost ?

因此,我开始在服务器的 IIS 上创建一个自签名证书,并将其存储在个人证书存储中。 但是当我从外部(浏览器)连接时,出现错误:

This site is not secure - Error Code: DLG_FLAGS_SEC_CERT_CN_INVALID 

经过一些搜索但没有找到任何东西后,我在我的笔记本电脑上安装了相同的证书(这样我就可以在不收到警告的情况下访问 API)。 现在我没有收到任何警告,发现 JSON 可用。可见(从浏览器)

但以编程方式我仍然遇到相同的错误。

错误

Error connecting to https://:1337/.well-known/openid-configuration: An error occurred while sending the request.

异常堆栈跟踪

at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   at System.Net.Http.DiagnosticsHandler.<SendAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   at System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__58.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at IdentityModel.Client.DiscoveryClient.<GetAsync>d__17.MoveNext()

内部异常消息:

A security error occurred

内部异常 StackTrace

at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Threading.Tasks.RendezvousAwaitable`1.GetResult()
at System.Net.Http.WinHttpHandler.<StartRequest>d__105.MoveNext()

编辑 01 将相同的自签名证书从服务器添加到我的笔记本电脑到受信任的证书容器上,部分工作。

最佳答案

安装自签名证书(用于 IIS)后我遇到了另一个错误,它与 JWT 签名的自签名证书有关,我必须将权限分配给应用程序池后面的域用户(不是ApplicationPoolIdentity)用于证书的读/写。 我已经通过 MMC 做到了这一点

关于asp.net - IdentityServer4 - 发生安全错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46053110/

相关文章:

c# - ASP.NET:用户控件中的按钮不回发

.htaccess - 存在生根系统时从 HTTP 到 HTTPS

ssl - HTTPS 查询字符串安全吗?

asp.net-web-api - 在同一个解决方案中测试 WebAPI 和前端?

asp.net-web-api - Azure AD/B2C 用户的安全 API

asp.net - MSDeploy和 "site under maintenance"页面

javascript - 如何动态地将 html 元素添加到页面并在 asp.net 中访问它们?

c# - 当数据对于 web.config 来说太大时该怎么办

apache - 在运行 Tomcat 的 EC2 实例上终止 HTTPS

c# - Azure 中的 Serilog 与 API 应用程序