在 Windows Server 2012 R2 上更新 PKIClient

在 Windows Server 2012 R2 上更新 PKIClient

我需要创建一个自签名证书,用于与安装了 Powershell 5.1 的 Windows Server 2012 R2 上的 IIS 应用程序建立 SSL 连接。

在 Windows 10 上我成功使用:

$subject = "something"
$ip = "<my ip>"

New-SelfSignedCertificate -NotAfter (Get-Date).AddYears(15) -CertstoreLocation Cert:\LocalMachine\My -Subject $subject -TextExtension @("2.5.29.17={text}DNS=$env:COMPUTERNAME&IPAddress=${ip}")

但是在 MS Server 2012 R2 上不支持参数subjectnotafter和。TextExtention

我似乎无法使用 MakeCert.exe,因为我无法设置“主题备用名称”(由参数设置的字段TextExtension),而这似乎是在我使用浏览器连接时所必需的。

makecert /n "CN=MyCert" /sr localmachine /ss my /l 2048 /eku 1.3.6.1.5.5.7.3.1 /m 300 /r

我了解到我可以将 PKIClient 更新为较新版本的 New-SelfsignedCertificate 命令。因此我尝试:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Update-Module PKIClient

最后一个命令不起作用。错误消息表明 PKIClient 未更新,因为在模块路径中未找到此类模块。

PSModulePath 包含:
C:\Users\Administrator\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules;C:\Program Files\Microsoft SQL Server\110\Tools\PowerShell\Modules\

Install-Module PKIClient也不起作用。错误消息说找不到 PKIClient,我应该检查 Get-PSRepository 以列出所有源。

Get-PSRepository

Name                      InstallationPolicy   SourceLocation
----                      ------------------   --------------    
PSGallery                 Untrusted            https://www.powershellgallery.com/api/v2

那么,如何获取此机器上的当前 PKIClient?或者如何使用 MakeCert 填充必填字段?

相关内容