SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【php】FTPSで接続はできてファイル転送ができない

問題

phpでFTPSしようとしています。

接続はできているはずですが、ファイル転送をすると空のファイルができているなど、挙動がおかしいです。

以下のようなメッセージでエラーが発生することもあります。内容はOKなのにエラー?

ftp_put(): Ok to send data.

答え

phpに限らず、FTPSクライアント側が require_ssl_reuse なサーバーに対応していないとファイルを転送できずエラーになります。

エラー例:

(522) 522 SSL connection failed; session reuse required: see require_ssl_reuse option in vsftpd.conf man page
転送接続にデータを書き込めません: 既存の接続はリモート ホストに強制的に切断されました

FTPSクライアントがコントロールコネクションで認証されたSSLセッションをデータコネクションで再利用できないので発生。

サーバー側で対応するには、 require_ssl_reuse=No の設定をする。セキュリティは少し落ちる。

クライアント側で対応するには、require_ssl_reuse に対応する必要があり、phpは 5.6.26や7.0.11で解消された。

参考

https://bugs.php.net/bug.php?id=70195

関連するメモ

コメント