当前位置: 首页 > 知识库问答 >
问题:

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

柯苗宣
2023-03-14

我有一个 ASP.NET Core 1.1应用程序设置为使用Https并需要客户端证书:

我正在Linux上运行应用程序。

如果我将Client证书模式更改为“Allow证书”,那么一切正常,但浏览器从不提示输入客户端证书。

设置了“RequireCertificate”后,浏览器仍然没有提示我输入证书,并且在服务器端出现了以下两个异常(都重复了四次),浏览器没有返回任何响应:

Microsoft. aspNetCore. Server. Kestrel:错误:连接过滤器. OnConntions

System.AggregateException:发生一个或多个错误。(身份验证失败,因为远程方已关闭传输流。---

Microsoft. aspNetCore. Server. Kestrel:错误:连接过滤器. OnConntions

系统。AggregateException:出现一个或多个错误。(根据验证程序,远程证书无效。) -

我已经花了大约四个小时尝试不同的东西,并在谷歌上搜索,但我似乎无法找出这个问题的核心原因是什么,所以我想我应该检查一下这里是否有人有想法。

共有2个答案

凤经武
2023-03-14

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

尹承业
2023-03-14

不知道您是否已经找到了解决方案,但我最近遇到了类似的问题。我发现如果您没有任何由服务器信任的CA签名的客户端证书,您将不会得到提示。我的解决方案是将根CA添加到Linux中的信任存储中,然后客户端证书将被适当地发送/提示。

 类似资料:
  • 客户端弱提示 Tida.toast("Hello World!");

  • 应如何管理它们? 一些更具体的问题: 根据定义,本机应用程序(实际上是公共客户端)不能安全地存储其凭据(client_id+secret)。是未注册的客户吗?如果我不能使用秘密来验证/验证它,我还应该做什么? 客户端注册≠endpoint注册:第一个是关于注册客户端凭据();第二个关于注册客户端重定向endpoint。重定向endpoint注册是否足以授予客户端的真实性? 客户端凭据授予是否使用相

  • 我一直在尝试使用Spring的和Java的对外部API进行REST客户端调用。我感到沮丧的是,使用循环100次执行相同的REST GET调用(返回一个小的JSON响应)大约需要60秒,使用大约需要53秒。我正在测试这个,因为我的Web应用程序需要通过HTTP GET、PUT对这个外部API进行多次调用 我可以做些什么来提高下面代码片段的效率吗?或者,是否有另一个库被认为与REST客户机一样高效?我

  • 因此,为了实现这个逻辑,我认为我需要在客户端验证JWT令牌。Q1,这是一个明智的做法吗。 Q2,我正在使用的库似乎需要一个公钥才能使用它的函数。我似乎没有公钥,只有一个秘密,这是我刚刚编造的,所以它不是用一对生成的。我的公钥从何而来,或者是否有另一种方法来验证我的令牌而不使用此方法? 这一切似乎应该是显而易见的,我错过了一些东西,所以很抱歉,如果这是一个愚蠢的问题,但我似乎找不到答案?

  • 我正在使用node和react构建一个图像压缩程序。服务器通过向客户机发送映像,但在客户机中不会发生。但我在网络和图像附件中得到了200 OK的响应。如何在客户端自动触发下载? 这是我处理图像压缩和下载代码的快速路由器: 下面是我的客户端函数,它发送下载图像的get请求: 顺便说一下,我没有在客户端处理响应,因为下载应该在得到响应后进行。 但如果在浏览器中键入完整图像URL路径,则会进行下载。然后

  • 问题内容: 我还很陌生,对于使用证书进行身份验证时客户端应该显示的内容有些困惑。 我正在编写一个Java客户端,该客户端需要对POST特定对象进行简单的数据处理URL。那部分工作正常,唯一的问题是应该完成。该部分相当容易处理(无论是使用Java的内置HTTPS支持还是使用Java的内置支持),但是我一直坚持使用客户端证书进行身份验证。我注意到这里已经存在一个非常类似的问题,我还没有尝试使用我的代码