Windows10でIISをインストールして、IISのバージョンの非表示とエラーページを変えてみた

Windows10にIISをインストールしてIISのバージョンの非表示とエラーページを変えてみました。備忘録として取っておきます。

#IISのインストール
windows10へのIISのインストール方法は色々なサイトに載っていますのでざっくり書きます。

コントロールパネルを開き、[プログラムと機能]をクリックします
その後[Windowsの機能の有効化または無効化]をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/f783f3e4-1a3b-37d7-c178-7de1e329142c.png)

インターネットインフォメーションサービスに■チェックを入れ、配下の必要な
項目にチェックを入れて[OK]をクリックします。
※IISが構成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/e907ead6-a212-0146-fd9d-c1849a46a27a.png)

後で確認をするときに必要になるので同画面でtelnetclientも有効化しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/8337a232-8a17-5225-a13e-75670478b67b.png)

インストール後、http://localhost/ とブラウザに入力し、以下IISのサンプルが
表示されることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/ffb7e04c-f2d1-9b46-d15b-bbadbb192b8d.png)

#IISのバージョンを非表示にさせる

HTTPレスポンスのヘッダーでIISのserverのヘッダーが見えてしまうのはセキュリティ的にあまりよろしくないので非表示にしてみようと思います。

以下はコマンドプロンプトで　telnet localhost 80 を入力し接続後、"a"と入力してEnterキーを押した結果です。
serverのヘッダーがHTTPAPI/2.0と表示されてます。
これを非表示にしてみます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/118b64de-9eb2-2b5f-b02b-3918bdbdb6a6.png)

非表示はレジストリで変更できます。(レジストリの操作は自己責任でお願いします）
スタート画面から[ファイル名を指定して実行]に"regedit.exe"を入力しEnterキーを押下します。レジストリエディタの画面が開くので、以下階層まで展開します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/a67d247f-72c6-b6da-ab1e-fc056853cea4.png)

レジストリをいじるのでバックアップをとります。
Parametersを選択した状態で、ファイル→エクスポートの順にクリックし
任意のフォルダに保存します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/b6450eb2-97f3-322e-2dea-542b5c7f1489.png)

編集タブから[新規]を選択し、[DWORD(32ビット)値(D)を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/f030fc5d-afc6-5159-53da-cb8d9373e763.png)

新しい値#1という名前のものが作成されるので、対象を右クリック→名前の変更から
"DisableServerHeader"に名前を変更します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/82c7054b-f91c-18e5-4f9e-1cff8d8b27a9.png)

名前の変更後、DisableServerHeaderを右クリックし、修正を選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/97209dd5-4a52-f82a-ef57-a1056e76a80e.png)

修正画面で[値のデータ]に"1"を入力し、OKを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/ccaa6371-3a4e-866e-1d00-589eeaff11b3.png)

レジストリエディタを閉じて、設定を反映させます。
設定の反映には機器再起動か、管理者権限のコマンドプロンプトで以下コマンドを入力します

net stop http /y　と入力後Enterを押下し、サービスが停止されたことを確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/a6c352c3-b71c-e34a-1ba2-8f557976adce.png)

net start w3svc　と入力後Enterを押下し、サービスが開始されたことを確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/34269ac3-addf-0b86-72b1-ff5eafdafa45.png)

もう一度コマンドプロンプトから　telnet localhost 80 で接続後、"a"と入力してEnterキーを押下してみます。
無事serverのヘッダー情報が削除されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/6fbf102f-2fe7-97fb-9e0d-ffbf5d0a4775.png)

#カスタムエラーページの設定

デフォルトのエラーページも変更してみます。

デフォルトルートの配下にerrorフォルダを作成し、その配下にエラーページ用のhtmlファイルを作成しました　※今回はerror1.htmlというファイルを作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/24e2f392-296b-bc72-8ff9-54a4116cecd6.png)

IISマネージャーから、Default Web Siteを選択し、ホームからエラーページを選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/a2a7bf89-2afe-0f34-5bd0-4b606c2778ca.png)

カスタムエラーページの編集画面から[このサイトでURLを実行]を選択し、
URL欄に以下のように入力しOKをクリックします
※デフォルトルートはC:\inetpub\wwwrootなのでその配下のパスでOK

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/d9bc54f4-08bd-5e64-9faa-71d6571611b0.png)

強制的に404エラーを発生させる
無事エラーページが変わりました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480057/36e38323-a38d-f41a-8fcc-28c938a3df88.png)

#まとめ
IISのインストールだけでは物足りなかったので、少し設定をいじってみました。
参考になれば嬉しいです。