IISサイトのバインドで[サーバー名の表示が必要]がオンになっている場合、サイトのOCSPステープリングは無効になります。
これは、現在それを必要としないサイトに対してSNIを有効にし、 https://www.ssllabs.com/ssltest/ またはopensslを使用して確認することで簡単に確認できます。
openssl s_client -connect foobar.com:443 -servername foobar.com -tls1 -tlsextdebug -status
SNI対応サイトのクライアントがOCSPステープリングのメリットを享受できるように、これに対する回避策はありますか?
HKLM\System\CurrentControlSet\Control\SecurityProviders\Schannel\
の下にDWORD reg値EnableOcspStaplingForSni
を作成し、ゼロ以外の値に設定します。
Microsoftによると、パフォーマンスの問題が発生する可能性があるため、この動作はデフォルトで無効になっています。
SNIおよびCCSバインディングのOCSPステープルを有効にするには、次のレジストリサブキーを見つけます。
"EnableOcspStaplingForSni"=dword:00000001
レジストリパス:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL]
の下
Powershellスニペット:
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\" -Name "EnableOcspStaplingForSni" -PropertyType DWord -Value 1
Microsoft参照記事 、記事はWindows 2012サーバーに関するものです。私はこれをテストしましたが、2016にも関連しています。
OCSPステープリング
オンライン証明書ステータスプロトコル(OCSP)ステープリングにより、インターネットインフォメーションサービス(IIS)などのWebサーバーは、TLSハンドシェイク中にサーバー証明書をクライアントに送信するときに、サーバー証明書の現在の失効ステータスを提供できます。この機能は、Webサーバーがサーバー証明書の現在のOCSPステータスをキャッシュして複数のWebクライアントに送信できるため、OCSPサーバーの負荷を軽減します。この機能がない場合、各Webクライアントは、OCSPサーバーからサーバー証明書の現在のOCSPステータスを取得しようとします。これにより、そのOCSPサーバーに高負荷が発生します。
デフォルトでは、シンプルなセキュア(SSL/TLS)バインディングを持つIIS WebサイトのOCSPサポートが有効になっています。ただし、IIS Webサイトが次のタイプのセキュア(SSL/TLS)バインディングのいずれかまたは両方を使用している場合、このサポートはデフォルトでは有効になっていません。
サーバー名の表示が必要
一元化された証明書ストアを使用する
この場合、TLSハンドシェイク中のサーバーのhello応答には、デフォルトでOCSPステイプルステータスが含まれません。この動作によりパフォーマンスが向上します。WindowsOCSPステープリングの実装は、何百ものサーバー証明書に拡張されます。 SNIとCCSはIISを数千のサーバー証明書を持つ可能性のある数千のWebサイトに拡張できるようにするため、この動作をデフォルトで有効に設定するとパフォーマンスの問題が発生する可能性があります。
注このレジストリキーを有効にすると、パフォーマンスに影響が出る可能性があります。