c# - 使用客户端证书 HTTPS 的移动与桌面身份验证

标签 c# authentication ssl https x509certificate

通过证书和 https 进行的移动身份验证和桌面身份验证之间有区别吗? 以及什么时候,如何用证书解决手机认证?

我们尝试完成与站点的连接,例如。 https: example.com 并通过证书对用户进行身份验证。 在设置 CA 并生成必要的证书之前。

来自登录站点的 C# 代码:

    var x509 = new X509Certificate2(this.Request.ClientCertificate.Certificate);
    var chain = new X509Chain(true);
    chain.ChainPolicy.RevocationMode = X509RevocationMode.Offline;
    chain.Build(x509);

与 IE 桌面浏览器配合使用非常好,我们可以记录每个证书信息。
编辑: 它不能与 firefox 一起使用,并且没有关于选择本地证书的问题 - 与移动设备相同的行为。

通过移动设备尝试相同的 url,例如:iPhone 或 Windowsphone - 无法从证书中读取任何内容。

解决方案: 正如@Sean Baker 所说,也在移动设备上安装您的 CA 证书。这就是我赞成他的回答作为这个问题的正确答案的原因。

查看网络服务器证书。就我而言,我已经在微软服务器上创建了证书并使用了“网络服务器”模板的副本,这样我就可以使用私钥导出证书, 因为这使得它更容易部署。

这是一个指向正确方向的网址: https://support.microsoft.com/en-us/kb/931351

使用 firefox 登录也能正常工作 - 您必须在 fF 管理中安装您的个人证书。之后,当您通过 https 打开 url 时,系统会提示您选择该证书。

最佳答案

协议(protocol)没有区别,但是在设备上安装证书和以后访问它们有很大不同。 Windows 和 iPhone 如何安装设备证书?

关于c# - 使用客户端证书 HTTPS 的移动与桌面身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30322329/

相关文章:

c# - 如何将 float (*vertices)[3] 添加到 C#

c# - ASP.NET 3.5 Url 路由不工作

c# - 'Rigidbody2D' 游戏对象没有附加 "Player",但脚本正在尝试访问它。 (统一)

php - '无法与主机 smtp.gmail.com 建立连接 [无法找到套接字传输 "ssl"

c# - 为每个成员获取相同的属性(这不是想要的)

google-chrome - 如何使用 FIDO U2F 允许用户通过我的网站进行身份验证?

javascript - 如何在nodejs中请求页面时设置 header ?

java - 在 JDBCRealm 中使用带有散列密码的 tomcat 基本/摘要身份验证的方法?

wcf - 如何强制 WCF 客户端发送客户端证书?

security - 登录认证后将 SSL 重定向到非 SSL