【发布时间】:2018-01-24 19:34:04
【问题描述】:
我正在尝试通过 ASP.NET MVC 构建身份验证系统。我正在使用 Identity Server 4 进行身份验证。我已经通过 ResourceOwner 实现了用户 ID 和密码验证。
现在我正在尝试实现智能卡身份验证。当我尝试在调试模式下读取 X509Certificate2 时,我能够读取客户端证书,但是当我将应用程序部署到 IIS 时,我无法读取证书。
当请求从客户端 ASP.NET MVC 发送到 Identity Server 4 时,我想在 IIS 上托管的 Identity Server 上接受客户端证书。我的 Identity Server 4 项目类型是 .NET Framework 上的 .NET Core。
我已经试过了:
- 在 IIS 上安装了授权的 SSL 证书
- 使用有效端口号向我的身份服务器 4 应用程序池添加了 HTTPS 绑定。
- 为身份服务器站点启用 SSL 并设置为接受客户端证书。
【问题讨论】:
-
在 IIS 上运行时,您让 IIS 扮演反向代理的角色,而 Idsrv4 则在它后面运行在 kestrel 中。 HTTPS 在 IIS 处终止,因此您无法找到连接的证书。
-
我曾尝试通过红隼获得证书,是的,我无法获得。
-
当我写下面的代码时,它在调试模式下对我有用,但在 IIS
X509Store store = new X509Store(StoreName.Root); store.Open(OpenFlags.ReadOnly);上托管时不起作用现在如果我检查 store.Certificates,我可以在调试模式下获取证书列表但无法在 IIS 上获取它。
标签: asp.net-mvc certificate smartcard identityserver4