IIS7とIE8の環境でOCSPのサポートがどんなもんかなーっと調査していたら、失効はうまく認識するのに、一向にOCSP(via HTTP)通信をしている気配が無い。散々いじくった結果、IISがTSL Staplingを使用して失効情報を配布していると言うことがわかった。そんな裏ワザがあったとは!
環境はこんな感じ
- Windows Server 2008 EE SP1
* ADDS
* ADCS
Enterprise CA
OCSP Responder
* IIS 7 & SSL
SSL用の証明書は失効済み&失効情報をOCSP Responderで配布
SSL用の証明書にはCDPを含まない
SSL用の証明書のAIAにOCSP拡張を含む - Windows Vista SP2
* Internet Explorer 8
この環境でIE8を使ってSSL通信をする。SSL用のサーバー証明書は失効されており、失効情報はOCSPを用いて公開されている。また、証明書にはOCSPレスポンダへのポインタしか含んでいないので、OCSP(via HTTP)で失効情報を入手するはずだ(と思い込んでいた)。実際にやってみると証明書の失効自体はうまく検出され、IEに「この証明書は失効されています」と表示される。しかし、以下の現象が私を悩ませた。
- イベントログのCAPI2の箇所を見ると、「失効の確認」のイベントでOCSPの情報を入手している。
- Microsoft Network Monitorでトラフィックを観測すると、OCSP(via HTTP)通信をしていない。
- ファイアウォールでHTTPをブロックしてもOCSP情報が取得できる。
うんうん悩んでたら、去年のPKI Dayでマイクロソフトの人が、OCSPとTLS Staplingについて話していた事を思い出したので、資料(PDF)を探してきた。TLS Staplingというのは、SSLハンドシェイク時にWebサーバーが自分自身の証明書の失効ステータスを送信する方法だそうな。
さっそく、Network Monitorで見ると....あったあった。SSLの最初のハンドシェイクの時に、「Server Hello. Certificate. Certificate Status.」を送っている。コイツだったのか...
IISは特に意識をせずにセットアップしたので、デフォルトでオンになっているということか。ちょっと探しただけでは、オフにする方法は見当たらなかった...どこだぁ。
0 件のコメント:
コメントを投稿