IIS7.5-多个用户的个人 SSL 证书

IIS7.5-多个用户的个人 SSL 证书

我想实现一个安全模型,但我不确定 IIS/SSL 使用什么术语来实现这一点。我也不知道如何在 IIS7.5 中实现它

我想要的流程

  • 某网站的管理员用户(多个)创建个人证书(.p12/.pfx/something)
  • 服务器操作员将此证书的一侧安装到 IIS(针对每个管理员)
  • 管理员将证书的另一方导入到其浏览器
  • 然后,管理员使用 SSL 作为护照,向网站的管理区域进行身份验证,以便能够进入管理员登录区域附近的任何地方

我将如何实现上述模型?我几乎需要逐步生成证书并配置 IIS。我不确定是否需要在网站身份验证之上进行某种基于 Windows 的身份验证,以及将证书映射回 Windows 用户。

我猜我需要为每个管理员设置专用的 Windows 用户,并同步证书。请注意,这是 Win2k8 R2 + IIS 7.5,不是 Exchange 或域驱动的东西,只是一个没有所有 AD 垃圾的普通服务器。

答案1

您有两个不同的问题。

  1. 设计一种生成和维护证书的方法。通常,这意味着安装 CA 并使用它来签署用户生成的证书。这是一个相当复杂的主题,但您可能希望从安装和了解 Windows 中的“证书颁发机构”角色开始。但不要将其安装在与您的 Web 服务器相同的机器上。
  2. 在 IIS 7.5 中实现客户端证书身份验证规则。这实际上并不太复杂。

以下是有关如何在 IIS 7.5 中设置客户端证书身份验证的详细信息:

  • 在角色管理器中,安装名为“IIS 客户端证书映射身份验证”的 IIS 角色服务
  • 打开 IIS 管理器并选择您想要保护的站点或文件夹。
  • 打开“配置编辑器”并浏览到“system.webServer/security/authentication/iisClientCertificateMappingAuthentication”部分。
  • 将“enabled”设置为“true”。

现在,您有不同的选项(可以同时启用):多对一和一对一映射。请参阅本文档如何设置它,但基本上,您创建要接受的每个证书的 base-64 编码版本,在文本编辑器中打开它,删除“开始证书”和“结束证书”行,删除所有换行符,然后使用 Windows 用户名和密码在配置编辑器中创建一个映射条目用于该证书登录,并使用您刚刚在“证书”字段中创建的字符串。

使用一对一映射稍微复杂一些,因为您必须指定客户端证书的哪个字段将用于验证客户端证书(而不是使用整个证书),但如果您有许多用户,它会更容易维护(因为您不需要在 Web 服务器上安装每个单独的证书)。

另外,请注意,您使用的所有证书都需要在服务器上有效:您需要将它们安装在服务器系统的证书存储区中(而不是您的用户,而是系统),在“受信任的人”部分(对于自签名和用户证书),在“受信任的根 CA”(对于证书根)或“中介证书颁发机构”(对于 ICA)。

答案2

您需要映射客户端证书以进行 Windows 身份验证(如果需要)。您可能会发现以下两篇来自微软的文章很有帮助。它们有一个分步过程。一篇是 MSDN 文章。另一篇是 Microsoft 支持知识库文章。

http://msdn.microsoft.com/en-us/library/ff649203.aspx

http://support.microsoft.com/?id=907274

希望有帮助。

答案3

我最初的想法是,你想让 SSL 做一些它没有设计好的事情,但当然还有客户端证书……

请查看 iisadmin.co.uk 上的这篇文章

http://www.iisadmin.co.uk/?p=11

-刘易斯

相关内容