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

Kyl*_*ndt 7 iis windows-server-2016

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

话虽这么说,钥匙 - 他们从该死的墙里出来了!

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

特别是以下3个键之间的关系(假设这些是不同的东西):

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

那么 Webroot 中的机器密钥和从aspnet_regiss相关导出的 RSA 密钥如何处理,它们各自的具体用途是什么?

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

Zyp*_*her 7

实际上只有两个键而不是三个。

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

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

iisWasKey 用于加密应用程序池标识。

因此,您需要来自在场中所有 IIS 服务器上设置 IIS 配置的机器的私钥,以便能够解密和运行您推出的配置。

参考文献 1
参考文献 2