iis - 通过证书连接时如何防止使用“LocalSystem”应用程序池标识
问题描述
我需要在我们的 IIS 服务器(在 Win 2019 上)上配置的站点使用证书与外部服务进行通信。该证书存在于个人和受信任类别的证书插件中。它还使用中间证书。
正确的应用程序池对 /personal 中的证书具有完全权限。也是“网络服务”用户。私有证书不可导出。
当应用程序池配置了身份“LocalSystem”但它不适用于“ApplicationPoolIdentity”时,SSL 连接有效。将应用程序池的“加载用户配置文件”从 false 更改为 true 不会改变任何内容。
该站点使用为其编写的库,并且仅在公司内部使用。使用库时使用“LocalSystem”是唯一的解决方案吗?
解决方案
您可以在应用程序池标识中尝试不同的用户帐户。
内置用户帐户 选择此选项以使用预定义的安全帐户之一。然后选择以下帐户之一:
- LocalSystem - 本地系统帐户拥有所有用户权限,它是 Web 服务器上管理员组的一部分。尽可能避免使用本地系统帐户,因为它会给您的 Web 服务器带来严重的安全风险。
- LocalService - 本地服务帐户是用户组的成员,具有与网络服务帐户相同的用户权限,但仅限于本地计算机。当应用程序池中的工作进程不需要访问其运行所在的 Web 服务器之外时,请使用此帐户。
- NetworkService - 默认情况下,选择网络服务帐户。它是用户组的成员,并具有运行应用程序所需的用户权限。它可以通过使用计算机帐户的凭据在基于 Active Directory 的网络中进行交互。此帐户可提供最高的安全性来抵御可能试图接管 Web 服务器的攻击。
- ApplicationPoolIdentity - 从 IIS 7 开始,应用程序池可以作为“ApplicationPoolIdentity”帐户而不是“NetworkService”帐户运行。这是应用程序池工作进程的专用伪用户帐户,是推荐的池标识。自定义用户帐户 选择此选项可为应用程序池身份配置自定义用户帐户。
自定义用户帐户 选择此选项可为应用程序池身份配置自定义用户帐户。
已安装的用户帐户 您可以配置希望工作进程在其下运行的已安装用户帐户。
基于属性的用户 通过使用对 Windows Installer 属性的引用,您可以动态选择希望工作进程在其下运行的用户名和密码。通过使用此选项,您可以选择密码的选择方式:
密码属性 密码存储在属性中。
预定义密码 通过选择此选项,您可以定义自己的密码。
注意:如果您使用自定义身份,请确保您指定的用户帐户是 Web 服务器上 IIS_IUSRS 组的成员,以便该帐户可以正确访问资源。此外,当您在环境中使用 Windows 和 Kerberos 身份验证时,您可能需要向域控制器 (DC) 注册服务主体名称 (SPN)。
推荐阅读
- html - 如何使用 xsl 值选择器输出原始 html?
- android - 如何在 androidTest 用例中使用“应用程序对象”?- 安卓
- web-applications - 验证码可用性?15 分钟后确认您是人类后放弃
- android - Android Studio:使用 Mercado Pago 进行透明结帐
- python - Heroku 应用程序部署因 nodejs 和烧瓶而失败
- css - 如何将子项的高度填充到另一侧并排的高度;
- r - 读取多个数据帧并使用 R 中的循环进行重组
- r - 按因子水平和列识别 R 数据中的异常值
- python - 有没有更有效的方法来遍历字典列表?
- amazon-web-services - 如何在 aws 中创建 docker-machine?创建机器时出错:检测操作系统时出错:等待 SSH 可用的重试次数过多