用語集 最終更新 2026.05.25

FTPS

FTPS は File Transfer Protocol over SSL/TLS の略で、従来の FTP に TLS による暗号化 を組み合わせたファイル転送プロトコルです。 名前が似ている SFTP とは仕組みも歴史も別物なので、混同に注意が必要です。

まず押さえたいポイント

  • FTPS = FTP + TLS、SFTP = SSH 上のファイル転送プロトコル名前は似ているが完全に別物
  • ポートは 21 (Explicit FTPS) または 990 (Implicit FTPS)。SFTP は 22
  • 制御チャネルとデータチャネルを別ポートで張る FTP の変則的な作り をそのまま継承している
  • 金融、物流、EDI など 取引先が指定する場面で出会うレガシー寄りプロトコル

Explicit FTPS と Implicit FTPS

FTPS には 2 つのモードがあります。

  • Explicit FTPS (FTPES) — 21 番に平文の FTP として接続し、AUTH TLS コマンドで暗号化に切り替える。RFC 4217 で標準化。現在の主流。
  • Implicit FTPS — 最初から TLS で 990 番に接続する。古い実装が多く、新規導入では非推奨。

新規構築なら Explicit FTPS か、可能なら SFTP を選ぶのが安全です。

FTPS と SFTP の選び方

新規構築なら SFTP が圧倒的に簡単です。

  • SFTPSSH 上で動くので、ポートは 22 番 1 つで済む
  • FTPS はファイアウォール越しに パッシブポート範囲 を開ける必要があり、運用がややこしい
  • 鍵管理も SFTP のほうが SSH の慣習をそのまま使える

それでも FTPS が必要になるのは、取引先のシステムが FTPS しか喋れない 場合がほとんどです。

curl で FTPS を扱う

クライアントは GUI なら WinSCP / FileZillaCLI / バッチなら curl が定番です。

curl での最小例:

  • curl --ssl-reqd -u user:pass -T file.zip ftp://host/path/ — Explicit FTPS でアップロード
  • curl -u user:pass ftps://host:990/path/file.zip -o file.zip — Implicit FTPS でダウンロード

--ssl-reqd を必ず付ける (TLS 必須化) のが本番運用の鉄則です。--ftp-ssl 単体だと TLS が使えないときに平文にフォールバックしてしまいます。

実務で気をつけたい誤解

FTPS = FTP の暗号版 と理解するのは正しいですが、セキュリティが完全 ではありません。 TLS 1.0 / 1.1 しか喋れない古いサーバが残っていたり、サーバ証明書チェーンが壊れていたり、パッシブポート範囲の設定漏れで通信が失敗したり、運用上の落とし穴が多いプロトコルです。

詳しくは curl コマンドと FTPS についてFTP と SSH の違いと使い分け で、ハマりどころと安全な運用パターンを整理しています。