Windows 2012 の IIS で SNI を設定するためのコマンド ライン

Windows 2012 の IIS で SNI を設定するためのコマンド ライン

私は、Windows 2012 を実行し、それぞれ独自のデジタル証明書を持つ 2 つの SSL Web サイトを持つ Web サーバーの自動ビルド スクリプトを完成させようとしています。

私は SNI を使用していますが、手動で設定すると正常に動作しますが、APPCMD を使用して同じ構成を設定すると、バインディング内のサイトの証明書を選択する方法がわかりません。

手動アプローチを使用する場合、証明書を選択するために使用するドロップダウン リストがあります。そのリストから証明書を選択するのと同等のコマンド ラインを探しています。

それをどうやってやるのか誰か知っていますか?

答え1

appcmd についてはわかりませんが、これはレガシー ツールなので、使用はお勧めしません。

PowerShell では、SSlFlags パラメータを使用して SNI を指定します。0 は SNI なし、1 は SNI を設定します。

New-WebBinding -Name site1.local -Port 443 -Protocol https -SslFlags 0
New-WebBinding -Name site2.local -Port 443 -Hostheader site2.local -Protocol https -SslFlags 1

既存の証明書を割り当てるには、まず証明書の拇印とGUIDを取得し、netshを使用します。

$thumb = (Get-ChildItem cert:\LocalMachine\MY | where-object { $_.FriendlyName -match "site2" } | Select-Object -First 1).Thumbprint
$guid = [guid]::NewGuid()
& netsh http add sslcert hostnameport=site2.local:443 certhash=$thumb appid=`{$guid`} certstorename=MY

SNIを使用しないサイトの場合:

$thumb = (Get-ChildItem cert:\LocalMachine\MY | where-object { $_.FriendlyName -match "site1" } | Select-Object -First 1).Thumbprint
$guid = [guid]::NewGuid()
& netsh http add sslcert ipport=0.0.0.0:443 certhash=$thumb appid=`{$guid`} certstorename=MY

答え2

これが私が自分自身の質問に対して見つけた答えです...

次の構文で netsh を使用する必要がありました:-

netsh http add sslcert hostnameport=www.shifts.org.uk:443 certstorename=MY certhash=<put your hash here> appid={<put your app ID here>}

以前私が見逃していた重要な部分は、上記の「hostnameport」というパラメータでした。これが将来誰かの役に立つことを願っています。

よろしくお願いいたします。

広告

関連情報