2

Windows 10 上の IIS10 は、ワイルドカード ホスト ヘッダーへの SSL バインディングをサポートします*.example.com

ワイルドカード ホスト ヘッダーの新しいSSL バインディングの作成は正常に機能しますが、バインディングが存在する場合は失敗し、 「パスに無効な文字」Test-Pathがスローされます。InvalidArgumentTest-Path IIS:\SslBindings\!443!*.example.com

-LiteralPathと同様に使用してみまし-Pathたが、両方とも同じエラーが発生しますが、バインディングが存在する場合のみです。存在しないパスをテストする$falseと、期待どおりに戻ります。

何か不足していますか?それとも、これは Test-Path/WebAdministration のバグですか?

example.ps1 (Windows 10 のみ):

Import-Module WebAdministration

# test binding, create if missing
# fails on wildcard test when the binding exists
if (-not (Test-Path -LiteralPath IIS:\SslBindings\*!443!*.example.com))
{ 
    Push-Location Cert:\LocalMachine\My

    # find or create a certificate
    $targetCert = Get-ChildItem -Recurse | ? { ($_.NotAfter -gt (Get-Date)) -and ($_.DnsNameList -contains "*.example.com") } | Sort NotAfter -Descending | select -First 1
    if ($targetCert -eq $null)
    {
        $targetCert = New-SelfSignedCertificate -DnsName "*.example.com" -CertStoreLocation Cert:\LocalMachine\My
    }

    # bind to host header *
    $targetCert | New-Item -Path IIS:\SslBindings\*!443!*.example.com -SSLFlags 1

    Pop-Location
}

私が現在使用している回避策は次のとおりです

if (-not (Get-ChildItem IIS:\SslBindings | ?{ $_.host -eq "*.example.com" -and $_.port -eq 443 }))
{
  ...
}

アップデート

注目に値するのはGet-ChildItem IIS:\SslBindings\*!443!*.example.com、問題なく動作することです。

4

0 に答える 0