简体   繁体   English

Linux上的ASP.NET Core Kestrel从不提示客户端证书

[英]ASP.NET Core Kestrel on Linux never prompts for client certificate

I have an ASP.NET Core 1.1 application set up to use Https and require client certificates: 我有一个ASP.NET Core 1.1应用程序设置为使用Https并需要客户端证书:

应用主要代码

I'm running the application on Linux. 我正在Linux上运行该应用程序。

If I change ClientCertificateMode to "AllowCertificates", then everything works fine, but the browser never prompts for a client cert. 如果我将ClientCertificateMode更改为“AllowCertificates”,那么一切正常,但浏览器从不提示客户端证书。

With "RequireCertificate" set, I still don't get prompted by the browser for a certificate, and I get the two exceptions below (both repeated four times) on the server side and no response returned the the browser: 设置了“RequireCertificate”后,浏览器仍然没有提示输入证书,我在服务器端获得了以下两个例外(两次重复)并且没有响应返回浏览器:

Microsoft.AspNetCore.Server.Kestrel:Error: ConnectionFilter.OnConnection Microsoft.AspNetCore.Server.Kestrel:错误:ConnectionFilter.OnConnection

System.AggregateException: One or more errors occurred. System.AggregateException:发生一个或多个错误。 (Authentication failed because the remote party has closed the transport stream.) ---> System.IO.IOException: Authentication failed because the remote party has closed the transport stream. (身份验证失败,因为远程方已关闭传输流。)---> System.IO.IOException:身份验证失败,因为远程方已关闭传输流。 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory 1.FromAsyncCoreLogic(IAsyncResult iar, Func 2 endFunction, Action 1 endAction, Task 1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task 在System.Net.Security.SslState.StartReadFrame(Byte []缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)处于System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest)---从先前位置抛出异常的堆栈跟踪结束---位于System.Net.Security的System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult结果)的System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)中的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()。 System.Threading.Tasks.TaskFactory上的SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult) 1.FromAsyncCoreLogic(IAsyncResult iar, Func 2 endFunction,Action 1 endAction, Task 1 promise,Boolean requiresSynchronization)---来自先前位置的堆栈跟踪结束,其中异常是抛出---在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()处 task) at Microsoft.AspNetCore.Server.Kestrel.Https.HttpsConnectionFilter.d__3.MoveNext() --- End of inner exception stack trace --- ---> (Inner Exception #0) System.IO.IOException: Authentication failed because the remote party has closed the transport stream. Microsoft.AspNetCore.Server.Kestrel.Https.HttpsConnectionFilter.d__3.MoveNext()---内部异常堆栈跟踪结束--- --->(内部异常#0)System.IO.IOException:身份验证失败因为远程方已关闭传输流。 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory 1.FromAsyncCoreLogic(IAsyncResult iar, Func 2 endFunction, Action 1 endAction, Task 1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task 在System.Net.Security.SslState.StartReadFrame(Byte []缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)处于System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest)---从先前位置抛出异常的堆栈跟踪结束---位于System.Net.Security的System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult结果)的System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)中的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()。 System.Threading.Tasks.TaskFactory上的SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult) 1.FromAsyncCoreLogic(IAsyncResult iar, Func 2 endFunction,Action 1 endAction, Task 1 promise,Boolean requiresSynchronization)---来自先前位置的堆栈跟踪结束,其中异常是抛出---在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()处 task) at Microsoft.AspNetCore.Server.Kestrel.Https.HttpsConnectionFilter.d__3.MoveNext()<--- 任务)在Microsoft.AspNetCore.Server.Kestrel.Https.HttpsConnectionFilter.d__3.MoveNext()<---

Microsoft.AspNetCore.Server.Kestrel:Error: ConnectionFilter.OnConnection Microsoft.AspNetCore.Server.Kestrel:错误:ConnectionFilter.OnConnection

System.AggregateException: One or more errors occurred. System.AggregateException:发生一个或多个错误。 (The remote certificate is invalid according to the validation procedure.) ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure. (根据验证过程,远程证书无效。)---> System.Security.Authentication.AuthenticationException:根据验证程序,远程证书无效。 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyn System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message,AsyncProtocolRequest asyncRequest)上的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()处于System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken消息,AsyncProtocolRequest asyncRequest,ExceptionDispatchInfo异常)处在System.Net.Security的System.Net.Security.SslState.ProcessReceivedBlob(Byte []缓冲区,Int32计数,AsyncProtocolRequest asyncRequest)处的System.Net.Security.SslState.StartSendBlob(Byte [] incoming,Int32 count,AsyncProtocolRequest asyncRequest)。 System.Net.Security.SslState.CheckCompletionBeforeNextReceive的System.Net.Security.SslState.StartReceiveBlob(Byte []缓冲区,AsyncProtocolRequest asyncRequest)中的SslState.StartReadFrame(Byte []缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)(ProtocolToken消息,AsyncProtocolRequest asyncRequest) )在System.Net.Security.SslState.StartSendBlob(Byte []传入,Int32计数,AsyncProtocolRequest asyn cRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtoco System.Net上的System.Net.Security.SslState.ProcessReceivedBlob(Byte []缓冲区,Int32计数,AsyncProtocolRequest asyncRequest)处于System.Net的System.Net.Security.SslState.StartReadFrame(Byte []缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)处的cRequest) System.Net.Security.SslState.StartSendBlob(Byte []传入,Int32计数的System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message,AsyncProtocolRequest asyncRequest).Security.SslState.StartReceiveBlob(Byte [] buffer,AsyncProtocolRequest asyncRequest)系统中的System.Net.Security.SslState.ProcessReceivedBlob(Byte []缓冲区,Int32计数,AsyncProtocolRequest asyncRequest),系统上的System.Net.Security.SslState.StartReadFrame(Byte []缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest),AsyncProtocolRequest asyncRequest) System.Net.Security.SslState.CheckCompletionBeforeNextReceive中的.Net.Security.SslState.StartReceiveBlob(Byte []缓冲区,AsyncProtocolRequest asyncRequest)(ProtocolToken消息,AsyncProtoco) lRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory 1.FromAsyncCoreLogic(IAsyncResult iar, Func 2 endFunction, Action 1 endAction, Task 1 promise, Boolean requiresSyn lRequest asyncRequest)在System.Net.Security.SslState.StartSendBlob(Byte [] incoming,Int32 count,AsyncProtocolRequest asyncRequest)处于System.Net.Security.SslState.ProcessReceivedBlob(Byte [] buffer,Int32 count,AsyncProtocolRequest asyncRequest)。 System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest)中的Net.Security.SslState.StartReadFrame(Byte []缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)---从抛出异常的上一个位置开始的堆栈跟踪结束---位于System.Net.Security.SslStream.EndAuthenticateAsServer上的System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult结果)中的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()处于System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)处System.Threading.Tasks.TaskFactory上的(IAsyncResult asyncResult) 1.FromAsyncCoreLogic(IAsyncResult iar, Func 2 endFunction,Action 1 endAction, Task 1 promise,Boolean requiresSyn chronization) --- 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 Microsoft.AspNetCore.Server.Kestrel.Https.HttpsConnectionFilter.d__3.MoveNext() --- End of inner exception stack trace --- ---> (Inner Exception #0) System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure. chronization)---抛出异常的前一个位置的堆栈跟踪结束---在Microsoft.AspNetCore的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()处。 Server.Kestrel.Https.HttpsConnectionFilter.d__3.MoveNext()---内部异常堆栈跟踪结束--- --->(内部异常#0)System.Security.Authentication.AuthenticationException:根据远程证书无效验证程序。 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyn System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message,AsyncProtocolRequest asyncRequest)上的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()处于System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken消息,AsyncProtocolRequest asyncRequest,ExceptionDispatchInfo异常)处在System.Net.Security的System.Net.Security.SslState.ProcessReceivedBlob(Byte []缓冲区,Int32计数,AsyncProtocolRequest asyncRequest)处的System.Net.Security.SslState.StartSendBlob(Byte [] incoming,Int32 count,AsyncProtocolRequest asyncRequest)。 System.Net.Security.SslState.CheckCompletionBeforeNextReceive的System.Net.Security.SslState.StartReceiveBlob(Byte []缓冲区,AsyncProtocolRequest asyncRequest)中的SslState.StartReadFrame(Byte []缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)(ProtocolToken消息,AsyncProtocolRequest asyncRequest) )在System.Net.Security.SslState.StartSendBlob(Byte []传入,Int32计数,AsyncProtocolRequest asyn cRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtoco System.Net上的System.Net.Security.SslState.ProcessReceivedBlob(Byte []缓冲区,Int32计数,AsyncProtocolRequest asyncRequest)处于System.Net的System.Net.Security.SslState.StartReadFrame(Byte []缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)处的cRequest) System.Net.Security.SslState.StartSendBlob(Byte []传入,Int32计数的System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message,AsyncProtocolRequest asyncRequest).Security.SslState.StartReceiveBlob(Byte [] buffer,AsyncProtocolRequest asyncRequest)系统中的System.Net.Security.SslState.ProcessReceivedBlob(Byte []缓冲区,Int32计数,AsyncProtocolRequest asyncRequest),系统上的System.Net.Security.SslState.StartReadFrame(Byte []缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest),AsyncProtocolRequest asyncRequest) System.Net.Security.SslState.CheckCompletionBeforeNextReceive中的.Net.Security.SslState.StartReceiveBlob(Byte []缓冲区,AsyncProtocolRequest asyncRequest)(ProtocolToken消息,AsyncProtoco) lRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory 1.FromAsyncCoreLogic(IAsyncResult iar, Func 2 endFunction, Action 1 endAction, Task 1 promise, Boolean requiresSyn lRequest asyncRequest)在System.Net.Security.SslState.StartSendBlob(Byte [] incoming,Int32 count,AsyncProtocolRequest asyncRequest)处于System.Net.Security.SslState.ProcessReceivedBlob(Byte [] buffer,Int32 count,AsyncProtocolRequest asyncRequest)。 System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest)中的Net.Security.SslState.StartReadFrame(Byte []缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)---从抛出异常的上一个位置开始的堆栈跟踪结束---位于System.Net.Security.SslStream.EndAuthenticateAsServer上的System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult结果)中的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()处于System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)处System.Threading.Tasks.TaskFactory上的(IAsyncResult asyncResult) 1.FromAsyncCoreLogic(IAsyncResult iar, Func 2 endFunction,Action 1 endAction, Task 1 promise,Boolean requiresSyn chronization) --- 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 Microsoft.AspNetCore.Server.Kestrel.Https.HttpsConnectionFilter.d__3.MoveNext()<--- chronization)---抛出异常的前一个位置的堆栈跟踪结束---在Microsoft.AspNetCore的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()处。 Server.Kestrel.Https.HttpsConnectionFilter.d__3.MoveNext()<---

浏览器截图

I've spent about four hours trying different things and Googling around, but I can't seem to figure out what the core cause of the issue is, so thought I'd check if anyone over here has an idea. 我花了大约四个小时尝试不同的东西和谷歌搜索,但我似乎无法弄清楚问题的核心原因是什么,所以我想要检查一下这里是否有人有想法。

Not sure if you've found a solution to this, but I recently ran into a similar issue. 不确定你是否找到了解决方案,但我最近遇到了类似的问题。 I found that if you don't have any client certificates that are signed by a CA that the server trusts, you won't be prompted. 我发现如果您没有任何由服务器信任的CA签名的客户端证书,则不会提示您。 My solution was to add the root CA to the trust store in Linux and after that the client certificate would be sent/prompted for appropriately. 我的解决方案是将根CA添加到Linux中的信任存储区,之后将适当地发送/提示客户端证书。

我最终使用IIS作为反向代理来获取证书信息(并进行验证),然后将其传递给标头到Kestrel。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 OnCertificateValidated 未运行 - 自签名证书客户端身份验证 - ASP.NET Core 和 Kestrel - OnCertificateValidated not running - Self-Signed Certificate Client Authentication - ASP.NET Core and Kestrel 将Linux客户端证书添加到Linux上的Kestrel REST API的.NET Core无法通过服务器证书验证 - .NET Core adding client certificate to POST to Kestrel REST API on Linux fails server cert validation 为什么 Asp.Net Core Kestrel 服务器向 Ngrok 返回 404 并且控制器永远不会被调用? - Why is Asp.Net Core Kestrel server returns 404 to Ngrok and Controller is never gets called? Kestrel on https with asp.net core 1.0 - Kestrel on https with asp.net core 1.0 记录asp.net core / kestrel中的异常 - Logging exceptions in asp.net core / kestrel 使用没有ASP.NET核心的Kestrel - Using Kestrel without ASP.NET core 在 Linux Docker 中查询 Asp.net Core/Kestrel 中的布尔属性的 Firestore 崩溃 - Querying Firestore for Boolean property in Asp.net Core/Kestrel Crashes in Linux Docker 请求内容意外结束Kestrel ASP.NET Core - Unexpected end of request content Kestrel ASP.NET Core ASP.NET Core、Kestrel和IIS之间有什么关系? - Whats the relationship between ASP.NET Core, Kestrel and IIS? 为HTTPS配置ASP.NET Core 2.0 Kestrel - Configure ASP.NET Core 2.0 Kestrel for HTTPS
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM