首页 > 解决方案 > 通过证书连接时如何防止使用“LocalSystem”应用程序池标识

问题描述

我需要在我们的 IIS 服务器(在 Win 2019 上)上配置的站点使用证书与外部服务进行通信。该证书存在于个人和受信任类别的证书插件中。它还使用中间证书。

正确的应用程序池对 /personal 中的证书具有完全权限。也是“网络服务”用户。私有证书不可导出。

当应用程序池配置了身份“LocalSystem”但它不适用于“ApplicationPoolIdentity”时,SSL 连接有效。将应用程序池的“加载用户配置文件”从 false 更改为 true 不会改变任何内容。

该站点使用为其编写的库,并且仅在公司内部使用。使用库时使用“LocalSystem”是唯一的解决方案吗?

标签: iiscertificatex509certificate

解决方案


您可以在应用程序池标识中尝试不同的用户帐户。

内置用户帐户 选择此选项以使用预定义的安全帐户之一。然后选择以下帐户之一:

  • LocalSystem - 本地系统帐户拥有所有用户权限,它是 Web 服务器上管理员组的一部分。尽可能避免使用本地系统帐户,因为它会给您的 Web 服务器带来严重的安全风险。
  • LocalService - 本地服务帐户是用户组的成员,具有与网络服务帐户相同的用户权限,但仅限于本地计算机。当应用程序池中的工作进程不需要访问其运行所在的 Web 服务器之外时,请使用此帐户。
  • NetworkService - 默认情况下,选择网络服务帐户。它是用户组的成员,并具有运行应用程序所需的用户权限。它可以通过使用计算机帐户的凭据在基于 Active Directory 的网络中进行交互。此帐户可提供最高的安全性来抵御可能试图接管 Web 服务器的攻击。
  • ApplicationPoolIdentity - 从 IIS 7 开始,应用程序池可以作为“ApplicationPoolIdentity”帐户而不是“NetworkService”帐户运行。这是应用程序池工作进程的专用伪用户帐户,是推荐的池标识。自定义用户帐户 选择此选项可为应用程序池身份配置自定义用户帐户。

自定义用户帐户 选择此选项可为应用程序池身份配置自定义用户帐户。

已安装的用户帐户 您可以配置希望工作进程在其下运行的已安装用户帐户。

基于属性的用户 通过使用对 Windows Installer 属性的引用,您可以动态选择希望工作进程在其下运行的用户名和密码。通过使用此选项,您可以选择密码的选择方式:

密码属性 密码存储在属性中。

预定义密码 通过选择此选项,您可以定义自己的密码。

注意:如果您使用自定义身份,请确保您指定的用户帐户是 Web 服务器上 IIS_IUSRS 组的成员,以便该帐户可以正确访问资源。此外,当您在环境中使用 Windows 和 Kerberos 身份验证时,您可能需要向域控制器 (DC) 注册服务主体名称 (SPN)。


推荐阅读