web-dev-qa-db-ja.com

IIS SNI対応サイトでOCSPステープリングを有効にする

IISサイトのバインドで[サーバー名の表示が必要]がオンになっている場合、サイトのOCSPステープリングは無効になります。

これは、現在それを必要としないサイトに対してSNIを有効にし、 https://www.ssllabs.com/ssltest/ またはopensslを使用して確認することで簡単に確認できます。

openssl s_client -connect foobar.com:443 -servername foobar.com -tls1 -tlsextdebug -status

SNI対応サイトのクライアントがOCSPステープリングのメリットを享受できるように、これに対する回避策はありますか?

6
franzo

HKLM\System\CurrentControlSet\Control\SecurityProviders\Schannel\の下にDWORD reg値EnableOcspStaplingForSniを作成し、ゼロ以外の値に設定します。

3
Andrei

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サイトに拡張できるようにするため、この動作をデフォルトで有効に設定するとパフォーマンスの問題が発生する可能性があります。

このレジストリキーを有効にすると、パフォーマンスに影響が出る可能性があります。

1
Jim Wolff