Archive for category Arts

IIS 7/7.5 で不要なHTTPレスポンスヘッダーを削除

IIS7以降の、不要なHTTPレスポンスヘッダーの削除方法のまとめ。内部的に設定されているレスポンスヘッダーの削除は、モジュールの作成・登録が必要。

モジュールの作成は簡単ですが、ユーザーへのトラフィック転送量と、該当モジュールの動作によるリソース消費・レスポンス遅延とのオーダーで、使うか・使わないかを決める事になりそう。時間があれば、トレースログでレスポンス遅延を計測してみたいところです。

GUI設定

IISマネージャーを使って設定できるのは、カスタムHTTPヘッダーのみです。IISのデフォルトだと次のヘッダーが、サーバーレベルで登録されています。

X-Powered-By:ASP.NET

「ASP.NET技術で提供されてますよ」程度の情報なので、トラフィック削減もかねて削除して問題ないかと。

 □参考:technet – IIS 7 で HTTP 応答ヘッダーを構成する

appcmd設定

前出のヘッダーをコマンドで消す場合には、次が使えます。

サーバーレベルで削除する例:

appcmd clear config /section:httpProtocol /customHeaders.[name='X-Powered-By',value='ASP.NET'] /commit:apphost

 □参考:technet – IIS 7 で HTTP 応答ヘッダーを構成する

モジュール作成・登録 (カスタムヘッダー以外の対応)

Read the rest of this entry »

No Comments

IIS 7/7.5 でコンテンツをgzip圧縮して配信する

IIS7以降の静的コンテンツの圧縮機能についてのまとめ(動的は未検証)。デフォルトでは、閾値ファイルサイズ以上のHTML/CSSなどをgzipしてくれるようになっています(deflateは指定できない模様)。

GUI上で主な設定は完結しますが、細かい設定はappcmdなども併用しないと出来ないようですので、設定にこだわりたい方は注意。

GUI設定

「静的コンテンツの圧縮」は、次の箇所で設定が可能です。appcmdで指定する、対象ファイルも含めて、サーバー単位で細かな条件を決定する事になります。既定では、サーバーレベルで、静的コンテンツの圧縮はOnになっています。

  1. サーバー レベル:On/Off, 閾値ファイルサイズ、圧縮したファイルの保管場所、使用容量
  2. サイト レベル、フォルダ・仮想フォルダ レベル:On/Offのみ

サーバー レベルの画面:

IISマネージャ > サーバー名 > 「サーバー名 ホーム」 上の 「圧縮」アイコン (画面はIIS7の初期状態)
Read the rest of this entry »

, ,

No Comments

SQL Server Edition比較 (2008/2008R2/2012)

SQL Serverのエディション比較情報リンクのまとめ。

導入時の費用対効果をみたいという時から、運用中Editionにはこの機能あるのかまで。どのバージョンでもEnterprise/Datacenterじゃないと、全機能は入っていない点が注意事項だな。

個人的にはmsdnの情報がステキ。バージョンによって用語が若干違うので、バージョンを超える比較はちょっと難し目。なお製品情報は一世代前の情報しか見つかりませんでした。

SQL Server 2008

  • msdn – SQL Server 2008 の各エディションがサポートする機能
  • http://msdn.microsoft.com/ja-jp/library/cc645993%28v=sql.100%29.aspx
  • 主な特徴
    • 監査ログ(AuditLog)、バックアップの圧縮、透過的暗号化などのサポート
    • Merge句や、FileStreamなどもここからと記憶
    • コンプライアンス関連が大幅に見直されたバージョンという印象

Read the rest of this entry »

,

1 Comment

IIS7/7.5 クライアント証明書設定まとめ

IIS7/7.5のGUIはII6.0と比べて大きく変化しました。モジュール化が綺麗なので慣れるとわかりやすいと思えるようになりましたが、クライアント証明書のユーザマッピング設定箇所は大きく変わっているので、簡単に手順をまとめておきます。

GeoTrust社などのCAから証明書を購入したケースを想定していますが、自身でCAを運用しているケースでも同じ手順での対応ができると思います。

想定環境

  1. Web サーバー:IIS 7.5(ワークグループ)
    • 「Web サーバー (IIS)」の既定のインストールオプション
    • 「Windows 認証など必要な認証機能」のインストール
    • 「IIS クライアント証明書のマッピング認証」のインストール
  2. SSLサーバー証明書:GeoTrust社などのCAより購入
  3. SSLクライアント証明書:GeoTrust社などのCAより購入
  4. クライアント:Win7 + IE9 + 前出のクライアント証明書インストール済みユーザー

SSLクライアント証明書はPC単位ではなく、ユーザー単位でインストールするので、あくまでも接続検証は「クライアント証明書がインストールされたユーザー」で行う事が必要です。

Read the rest of this entry »

, ,

No Comments

IISとクライアント証明書の組合せ まとめ

IIS6/7とクライアント証明書を組み合わせて使う場合の注意点について、いくつかポイントをまとめ

クライアント証明書は、ログインユーザー毎にインストールできる為、ケースによってはユーザーの特定が出来て便利です。
証明書マッピングなどで、Windowsアカウントなどとの紐付することもできますし、証明書が入っているPCからだけしか操作を許可しない事も可能。

ただし、次のような点を合わせて考慮しておく必要がありましたので、まとめておきます。

ステータスコード:413への対処

IIS+クライアント証明書の組合せでサイトを構成しアプリを配置した後、操作中に「Internet Explorer ではこのページは表示できません」が表示されたり、「画面が真っ白になる」事がありました。エラーハンドルなどにもよると思いますが、経験的に次の場合に発生しました。

  • 数百KByte~数十MByteのファイルアップロード
  • 数十KByteのXMLアップロード

この場合、IISのWebログには 413 が記録されてます。このステータスコード 413 をキーで探すと、次の対策が有効とわかりました。
どうやらデーターをアップロード中にクライアント証明書の再ネゴシエーションが発生してしまった場合、それに伴うデッドロック回避のための仕組みが動作してしまうのが原因のようです。

プロパティ名から考えるに、常にクライアント証明書のネゴシエーションを行うことで、アップロード中などの再ネゴを防止する設定と考えらえます。

SSLAlwaysNegoClientCert プロパティを設定する

SSLAlwaysNegoClientCert
  Metabase Path
    /LM/W3SVC/n
    /LM/W3SVC

  Value
    FALSE (default)
      ↓
    TRUE

ただし上記の場合、設定がサイト単位になるので、クライアント証明書を常に要求する「サイト」への適用のみが可能となります。
そうではない場合、例えば、特定のアプリケーションや仮想フォルダだけクライアント証明書を要求したい場合には使えません。
サイト設計とのオーダーになってしまうのが難点です。

再ネゴの発生タイミング緩和のために、次のプロパティ値もあるので、場合によっては検討してもいいのかもしれません(TechNetでは、設定時の注意事項なども書かれてました)

UploadReadAheadSize プロパティ

基本は設定しないほうが良い模様(前出でダメだった場合に、検討)
後述のリンク先を参照ください。

なお、IIS7でも同じように設定が出来ました。IIS6からの変更点として格納先の変更はあったようですが、IIS6と同じ方法でアクセスは可能です。

サイト名・概要 サイトURLなど
クライアントが要求を再ネゴシエートできず、HTTP 413 エラーが返される
(Microsoft TechNet )
http://technet.microsoft.com/ja-jp/library/cc737382(v=WS.10).aspx
SSLAlwaysNegoClientCert Metabase Property
(Microsoft TechNet)
http://technet.microsoft.com/ja-jp/library/cc778630(v=ws.10).aspx
UploadReadAheadSize Metabase Property
(Microsoft TechNet)
http://technet.microsoft.com/ja-jp/library/cc728324(v=ws.10).aspx
IIS 資料。
(NetDriveさん)
http://www.netdive.jp/iis.html
IIS 6.0 と IIS 7.0 のセキュリティに関する変更点
(Microsoft TechNet)
http://technet.microsoft.com/ja-jp/library/ee890774.aspx

WebDAV利用時の問題点

IISでWebDAV利用+クライアント証明書の場合、48KB以上のファイルがPUTできない問題が発生する「ことが」あります(「ことが」を強調したのは、WebDAVクライアントによって問題が発生しなかった場合があった為)。

検証結果は、Windows2003WebEditionのIIS6.0をデフォルト状態で使った場合。

WebDAVサーバー WebDAVクライアント 48KB以上のファイルがPUTできるか?
IIS6.0 InternetExplorer 6.0 (Windows XP) できない
IIS6.0 WebDrive できる
IIS6.0 CarrotDAV できる

なぜWebDAVクライアントによって違いが出るのかは確認していません。
未検証ですがケースが近いので、InternetExplorerをクライアントとして使う場合には、前出の”SSLAlwaysNegoClientCert設定”は有効だと思います。

サイト名・概要 サイトURLなど
IIS 資料。
(NetDrive)
http://www.netdive.jp/iis.html
IISのWebDAVサービスでサイズの大きなファイル(48K)が413エラーになる
(中の技術日誌)
http://naka.wankuma.com/site/column/windows2003/00003.htm

No Comments