IIS 密钥:机器密钥、WAS 密钥、IIS 配置密钥

IIS 密钥:机器密钥、WAS 密钥、IIS 配置密钥

我正在探索使用 puppet 管理 IIS 的方法。应用程序在多台服务器上运行,因此我需要密钥在应用程序之间保持一致,这样当人们从一个 Web 服务器移动到另一个 Web 服务器时,身份验证也是一致的。

话虽如此,钥匙——他们从该死的墙里出来了!

我已经找到了很多关于共享配置等的操作方法和信息。但就如何在没有共享配置的情况下实现自动化而言,我想真正了解 Windows Server 2016 中这些不同键的作用。我一直很难找到该信息。

具体来说,以下 3 个键之间的关系(假设这些是不同的东西):

  • 在我将机器密钥(由 IIS gui 显示,或Get-WebConfigurationProperty -PSPath Machine/Webroot /system.web/machineKey -name * | select *)从自动生成密钥更改为特定密钥后,它似乎与 IIS GUI 的设置相匹配。
  • 还有机器钥匙?您可以使用 获得IISCofigurationKey和钥匙。iisWasKeyaspnet_regiis

那么 Webroot 中的机器密钥和导出的 RSA 密钥有何aspnet_regiss关系,以及它们各自的具体用途是什么?

为了在其上运行的 aspnet 应用程序进行一致的身份验证,它们是否都需要在整个 Web 场中保持一致(假设没有被 webconfig 超载),或者只要您不尝试复制实际的应用程序主机文件,它就仅仅是 IIS gui 中显示的机器密钥?

答案1

实际上只有两把钥匙,而不是三把。

有 IISConfigurationKey(“机器密钥”),它可以位于 webroot 中,也可以位于全局系统配置中,还有 iisWasKey。本质上,您可以通过在应用程序配置中使用一个机器密钥来覆盖全局机器密钥。

机器密钥用于加密配置部分。此密钥将用于加密配置字符串等内容以及您可以作为 app.config 的一部分指定的其他位。

iisWasKey 用于加密应用程序池身份。

因此,您需要从服务器场中所有 IIS 服务器上设置 IIS 配置的机器获取私钥,才能解密并运行您要推送的配置。

参考文献 1
参考文献 2

相关内容