Windows標準のIISでWebサーバーとFTPサーバーを作る

XPの頃はPro以上じゃないと使えない上に同時接続数制限があったのでIISは使う気にならなかったけど、Vista以降はHome(8は無印に相当)以上で使える上に同時処理数制限に変わってたのでWindows 8.1で使ってみた。

Webサーバー機能の有効化

コントロール パネル→プログラム→プログラムと機能→Windows の機能の有効化または無効化→インターネット インフォメーション サービスを選択してOK
再起動は不要。 http://localhost/ を開くと C:\inetpub\wwwroot 以下が見える。

Windowsファイアウォールの設定

コントロール パネル→システムとセキュリティ→Windows ファイアウォール→詳細設定→受信の規則→World Wide Web サービス (HTTP トラフィック)を右クリックして規則の有効化
再起動は不要。これで他のPCから見えるようになる。外部に公開する場合はTCP 80番ポートをルータ等で開放する。

ディレクトリの参照

コントロール パネル→システムとセキュリティ→管理ツール→インターネット インフォメーション サービス (IIS) マネージャー→コンピューター名→サイト→Default Web Site→ディレクトリの参照→有効にする
これでindex.html等の無いディレクトリを参照した際にファイル一覧が表示される。
尚、IISマネージャー起動時に最新の Web Platform コンポーネントとの接続を維持するため、Microsoft Web Platform の使用を開始しますか? と出たらキャンセルする。

仮想ディレクトリの追加

コントロール パネル→システムとセキュリティ→管理ツール→インターネット インフォメーション サービス (IIS) マネージャー→コンピューター名→サイト→Default Web Siteを右クリックして仮想ディレクトリの追加→エイリアスに仮想ディレクトリ名、物理パスに実ディレクトリ名を入力してOK

基本認証機能の有効化

コントロール パネル→プログラム→プログラムと機能→Windows の機能の有効化または無効化→インターネット インフォメーション サービス→World Wide Web サービス→セキュリティ→基本認証を選択してOK
再起動は不要。

基本認証の有効化

コントロール パネル→システムとセキュリティ→管理ツール→インターネット インフォメーション サービス (IIS) マネージャー→コンピューター名→サイト→Default Web Site→認証→匿名認証を右クリックして無効にする、基本認証を右クリックして有効にする
認証にはWindowsのユーザーをそのまま使用する。Default Web Siteの中のディレクトリから行えば特定のディレクトリ以下のみ認証をかけることも出来る。

ユーザーの追加

コントロール パネル→ユーザー アカウントとファミリー セーフティ→ユーザー アカウント→別のアカウントの管理→PC 設定で新しいユーザーを追加→ユーザーを追加する→Microsoft アカウントを使わずにサインインする (お勧めしません)→ローカル アカウント→ユーザー名、パスワード、パスワードの確認、パスワードのヒントを入力して完了
尚、パブリック フォルダーを複数のユーザーで使いたい場合は、コントロール パネル→ネットワークとインターネット→ネットワークと共有センター→共有の詳細設定の変更→すべてのネットワーク→共有を有効にして、ネットワーク アクセスがある場合はパブリック フォルダー内のファイルを読み書きできるようにする→変更の保存を行う。

サーバー証明書の作成

https接続に必要なサーバー証明書は以下の手順で作成する。
コントロール パネル→システムとセキュリティ→管理ツール→インターネット インフォメーション サービス (IIS) マネージャー→コンピューター名→サーバー証明書→→自己署名入り証明書の作成→証明書のフレンドリ名を指定してくださいに適当な名前を入力してOK

サーバー証明書の設定

コントロール パネル→システムとセキュリティ→管理ツール→インターネット インフォメーション サービス (IIS) マネージャー→コンピューター名→サイト→Default Web Site→バインド→追加→種類からhttpsSSL 証明書からサーバー証明書を選択してOK
これで https://localhost/ を開くことが出来る。

Windowsファイアウォールの設定(https接続)

コントロール パネル→システムとセキュリティ→Windows ファイアウォール→詳細設定→受信の規則→World Wide Web サービス (HTTPS トラフィック)を右クリックして規則の有効化
再起動は不要。これで他のPCからもhttps接続で見えるようになる。外部に公開する場合はTCP 443番ポートをルータ等で開放する。

WebDAV機能の有効化

コントロール パネル→プログラム→プログラムと機能→Windows の機能の有効化または無効化→インターネット インフォメーション サービス→World Wide Web サービス→HTTP 共通機能→WebDAV 発行を選択してOK
再起動は不要。セキュリティにある基本認証の選択も必須。また、Windows標準のWebDAVクライアント機能(エクスプローラー)を使う場合はWindows認証も選択する。

WebDAVの有効化

コントロール パネル→システムとセキュリティ→管理ツール→インターネット インフォメーション サービス (IIS) マネージャー→コンピューター名→サイト→Default Web Site→WebDAV オーサリング規制→WebDAV の有効化→オーサリング規則の追加→すべてのコンテンツ→すべてのユーザー→読み取りと書き込みにチェックしてOK
Windows標準のWebDAVクライアント機能(エクスプローラー)を使う場合は以下の手順でWindows認証の有効化も行う。
コントロール パネル→システムとセキュリティ→管理ツール→インターネット インフォメーション サービス (IIS) マネージャー→コンピューター名→サイト→Default Web Site→認証→Windows 認証を右クリックして有効にする

FTPサーバー機能の有効化

コントロール パネル→プログラム→プログラムと機能→Windows の機能の有効化または無効化→インターネット インフォメーション サービス→FTP サーバーを選択してOK
再起動は不要。 Webサーバーと違ってデフォルトのFTPサイトは無いので、以下の手順で追加しなければならない。
コントロール パネル→システムとセキュリティ→管理ツール→インターネット インフォメーション サービス (IIS) マネージャー→コンピューター名を右クリックしてFTP サイトの追加→FTPサイト名(例:Default FTP Site)、物理パスに対応する実ディレクトリ名(例:C:\inetpub\ftproot)を入力して無しを選択し、次へ→匿名または基本をチェック、アクセスの許可から匿名ユーザーまたはすべてのユーザーを選択、読み取りと書き込みにチェックして終了

Windowsファイアウォールの設定(FTP接続)

コントロール パネル→システムとセキュリティ→Windows ファイアウォール→受信の規則→FTP サーバー (FTP トラフィック)を右クリックして規則の有効化→FTP サーバー パッシブ (FTP パッシブ トラフィック受信)を右クリックして規則の有効化→送信の規則→FTP サーバー (FTP トラフィック送信)を右クリックして規則の有効化
再起動が必要な模様。外部に公開する場合はTCP 21番ポートをルータ等で開放する。ただし、パッシブモードを使うには以下の手順でポート範囲(ルータ等でも開放する)と外部IPアドレスの設定をする必要がある為、固定IPアドレス以外では使用できない。
コントロール パネル→システムとセキュリティ→管理ツール→インターネット インフォメーション サービス (IIS) マネージャー→コンピューター名→サイト→FTPサイト名→FTP ファイアウォールのサポート→データ チャネルのポート範囲とファイアウォールの外部 IP アドレスを入力

仮想ディレクトリの追加の設定(FTP接続)

コントロール パネル→システムとセキュリティ→管理ツール→インターネット インフォメーション サービス (IIS) マネージャー→コンピューター名→サイト→FTPサイト名→仮想ディレクトリの追加→エイリアスに仮想ディレクトリ名、物理パスに実ディレクトリ名を入力してOK

仮想ディレクトリの表示

コントロール パネル→システムとセキュリティ→管理ツール→インターネット インフォメーション サービス (IIS) マネージャー→コンピューター名→サイト→FTPサイト名→FTP ディレクトリの参照→仮想ディレクトリにチェックして適用

FTPサーバーの表示スタイルをUNIXにする

コントロール パネル→システムとセキュリティ→管理ツール→インターネット インフォメーション サービス (IIS) マネージャー→コンピューター名→サイト→FTPサイト名→FTP ディレクトリの参照→UNIX→適用

サーバー証明書の設定(FTPS接続)

ftps (explicit) 接続するためにサーバー証明書を設定する。サーバー証明書はWebサーバーと同じものが使える。
コントロール パネル→システムとセキュリティ→管理ツール→インターネット インフォメーション サービス (IIS) マネージャー→コンピューター名→サイト→FTPサイト名→FTPSSL 設定→SSL 証明書からサーバー証明書を選択して適用

Windowsファイアウォールの設定(FTPS接続)

コントロール パネル→システムとセキュリティ→Windows ファイアウォール→詳細設定→受信の規則→FTP サーバー セキュリティ (FTP SSL トラフィック受信)を右クリックして規則の有効化→受信の規則→FTP サーバー セキュリティ (FTP SSL トラフィック送信)を右クリックして規則の有効化
再起動が必要な模様。外部に公開する場合はTCP 990番ポートをルータ等で開放する。