Возможно ли использовать FTP через TLS на сервере, на котором размещено несколько веб-сайтов (доменов)?
Я могу получить сертификаты для любого из доменов, но проблема в том, что у меня нет возможности узнать, к какому домену подключается пользователь со своего клиента. Поэтому я не знаю, какой сертификат отправить FTP-клиенту. Я знаю, что после того, как он отправит пользователя и пароль, но не раньше, поэтому я не могу установить безопасное соединение на этапе запуска FTP-сервера.
Есть ли способ обойти это?
В самом FTP нет понятия имени хоста. Теоретически клиент может послать ожидаемое имя хоста внутри подтверждения TLS как расширение имени_сервера (SNI) в ClientHello. Таким образом сервер может решить, какой сертификат отправить. Но хотя это обычное дело для HTTP, я сомневаюсь, что все FTP-серверы и клиенты поддерживают его. Беглый поиск показывает, что последние версии сервера ProFTPd и клиента FileZilla должны его поддерживать.
Конечно, вы также можете предоставить FTP-сервер с фиксированным именем хоста, а затем иметь домашние каталоги и учетные данные для конкретного домена. Таким образом, он будет работать с любым сервером или клиентом и даже без TLS (не рекомендуется).