Windows Server 2019でFTPSを利用する手順になります。
いろんなサイトを参考にしたのですが、自分の環境では正しく動作しなかったので、備忘録として残します。
結果から言うとFTPの設定変更を反映させるには、
「自分で Microsoft FTP Service サービスを再起動する」
というのを知らなかったので、路頭に迷いました。
サービスの再起動をしなかったので、
WinSCP接続時にずっと以下のエラーで悩んでいました。
ディレクトリ '/' のリスト取得のエラー
Server cannot accept argument
ディレクトリの一覧を取得できません。
Windows Server 2019でFTPSを設定し、WinSCPで接続する手順を説明します。
前提
・Windows Server 2019(AWSのEC2を利用)
・IISは10.0
・Windows Server 2019のファイアウォールは無効
※無効にできない場合は必要なポートのみ穴あけする
以下、FTPの設定方法です。
構築概要
1、SSL証明書を作成&設定
2、FTPS設定
3、WinSCPの設定(特別な設定は無いです)
4、まとめ
手順
1、SSL証明書を作成&設定
1-1、IIS マネージャーを起動し、左ペインからサーバーを選択し、サーバー証明書 をダブルクリックする。
1-2、「自己署名入り証明書の作成...」をクリックする。
1-3、フレンドリ名には任意の名前を入力し、「OK」ボタンを押下する。
SSL証明書が作成されます。
■補足
ここで作成すると有効期限が1年になります。
PowerShellから「New-SelfSignedCertificate」で自己署名証明書を作成すれば、有効期限を自由に設定できます。(有効期限10年とか)
詳しくは以下のサイトを参照
1-4、サイトを選択し、「FTP の SSL 設定」をダブルクリックする。
1-5、「1-3」の手順で作成したSSL証明書を選択し、「SSL接続が必要」を選択し、右側にある「適用」をクリックする。
■ 補足
SSLポリシーは、FTPも利用したい場合は「SSL接続を許可する」を選択する
セキュリティ強化のため、「SSL 接続に 128ビット暗号化を利用する」のチェックは入れておいた方が良さそう
2、FTPS設定
2-1、サーバーを選択し、「FTPファイアウォールのサポート」をダブルクリックする。
2-2、任意のポートを指定(今回は「5678」とする)「適用」をクリックする。
「5678」ポートを利用するため、データチャネルポートには「5678-5678」を入力
2-3、サービスを起動し、「Microsoft FTP Service」を選択し、再起動をクリックする。
ここで再起動しないと、手順2-2の設定が反映されないので、再起動は必須。
2-4、この環境はAWSのEC2を利用しているため、セキュリティグループに「5678」のポートを空ける
3、WinSCPの設定
特別な設定はないので、簡単な手順で。
3-1、「明示的なTLS/SSL暗号化」を選択し、接続情報を入力し、接続する。
デフォルトなので設定不要ですが、「パッシブモード」で接続します。
3-2、初回だけ警告ができるので、「はい」ボタンを押下する。
3-3、接続することができました。
手順としては以上になります。
4、まとめ
・FTPの設定変更は「Microsoft FTP Service」 サービスを再起動して反映される
・FTPSはパッシブモードで接続する
個人的には22ポートを利用するSFTPの方が良いのかなと思っています。
Windows Server 2019でSFTPを利用する手順は以下になります。
参考にさせて頂いたサイト