【问题标题】:PowerShell DSC Credential Decryption ErrorPowerShell DSC 凭据解密错误
【发布时间】:2017-04-14 14:18:48
【问题描述】:

我创建了一个拉取服务器配置。用于编译 MOF 文件的 Pull Server 和客户端都是 Windows Server 2016,完全从 Azure 映像更新。

我在传递凭据时不断收到错误消息。因此,我编写了一个小型自定义 DSC 资源,当我运行 Start-DSCConfiguration -Wait -Verbose 时将密码显示为 clear txt

你可以在这里找到它:https://gist.github.com/aboersch/65e846a4966fe2c4708ed21d655a54a7

客户端未正确解密凭据。作为我收到的密码

-----BEGIN CMS-----
<Long Multi-Line Base64 String>
-----END CMS-----

如果我将它传递给 Unprotect-CmsMessage,我会收到正确的密码。

证书通过 $.PrivateKey.KeyExchangeAlgorithm 和 $.Verify

我已尝试将证书提供程序更改为“Microsoft Enhanced Cryptographic Provider v1.0”、“Legacy Cryptographic Service Provider”和“Microsoft RSA SChannel Cryptographic Provider”。

我也尝试过 xDSCUtils New-xSelfSignedDscEncryptionCertificate。

如果我使用相同的证书并在同一台服务器上编译和执行,则没有问题。

我已经尝试过这些: DSC problems with Credentials and build 10586 https://wespoint.wordpress.com/2017/01/19/powershell-dsc-encryption-issue/

这里是证书属性:

EnhancedKeyUsageList     : {Client Authentication (1.3.6.1.5.5.7.3.2), Server Authentication (1.3.6.1.5.5.7.3.1)}
DnsNameList              : {ComputerFQDN}
SendAsTrustedIssuer      : False
Archived                 : False
EnhancedKeyUsage         : Document Encryption (1.3.6.1.4.1.311.80.1)
FriendlyName             : 
IssuerName               : 
NotAfter                 : 4/14/2018 1:09:37 PM
NotBefore                : 4/14/2017 1:09:37 PM
HasPrivateKey            : True
PrivateKey               : 
PublicKey                : RSA (2048 bits)
RawData                  : 
SerialNumber             : 19000000115FCB3C2E4C71BA69000000000011
SubjectName              : 
SignatureAlgorithm       : sha256RSA
Thumbprint               : F4238E74BFB238DEE89C78C13B5C2C8182674801
Version                  : 3
Handle                   : 1362382910512
Issuer                   : CA
Subject                  : CN=ComputerFQDN

【问题讨论】:

  • 客户端是否安装了解密所需的证书?
  • 您如何传递凭据?凭据和 DSC 很奇怪,我希望你已经知道了。
  • 感谢您的意见。 @NanaLakshmanan 你能告诉我如何报告这个错误吗? UserVoice 完全失败(那里什么也没有发生),PowerShell 的公共 GitHub 存储库告诉我,他们不对 DSC 负责。

标签: powershell dsc


【解决方案1】:

问题主要与部分配置有关,我认为这是 Windows Server 2016 上 WMF 5.1 中的真正错误。

基本上,如果您有部分配置(推送或拉取无关紧要),并且配置功能之一不包含具有凭证的资源,因此强制使用 MOF 的证书对凭证进行序列化,解密会失败。

您可以在 Windows Server 2016 或带有 WMF 5.1 的 Windows 10 上自己重现它:

  1. 将名为 DscTest 的文件夹添加到 C:\Program Files\WindowsPowerShell\Modules 并将来自此 gist 的文件添加到其中。

  2. 执行this 脚本。前两个会通过,最后一个会失败。

解决方法是包含一个资源(即使它是一个虚拟资源),该资源对每个部分配置功能都使用一个凭据。这就是第一个要点中我的模块中的 DscCredentialHole 资源的用途。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 2020-03-10
    • 2023-03-11
    相关资源
    最近更新 更多