我需要创建一个自签名证书,用于与安装了 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 上不支持参数subject
、notafter
和。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 填充必填字段?