Как отправить файл по защищенному протоколу FTP SSL

Я ценю любую помощь, которая может быть предложена по этому вопросу. В конце онлайн-регистрации я беру данные клиента (несколько полей), помещаю их в файл CSV и пытаюсь отправить другому клиенту по протоколу SSL, но понятия не имею, как это делается. Я также храню информацию в локальной базе данных и надеюсь, что процесс будет чем-то похожим.

Мне уже были отправлены ссылки для просмотра инструкций по SSH2 с php.net SSN2

но, честно говоря, для меня это все равно, что читать по-китайски. Я не понимаю инструкции и не собираюсь устанавливать какие-либо расширения, изменять файл PHP.ini или что-то в этом роде (тем более, что мы не владеем сервером, через который пересылается информация).

Существует ли простой и безопасный способ передачи этого файла по предоставленному нам протоколу SSL?

Спасибо!


person JM4    schedule 17.05.2010    source источник
comment
Итак, вас интересует использование sftp или FTP-ssl?   -  person WhirlWind    schedule 17.05.2010
comment
@WhirlWind - наш клиент настроил следующее: создал безопасную учетную запись FTP и открыл порт 990 в брандмауэре для SSL-соединений на FTP-сервере. Я также создал новый запрос сертификата для протокола FTP и выбрал 1028-битный сертификат безопасности SSL.   -  person JM4    schedule 17.05.2010
comment
Возможно, найдите какие-нибудь инструкции для FTPS, а не для SSH, поскольку похоже, что это то, чего хочет клиент.   -  person WhirlWind    schedule 17.05.2010
comment
@WhirlWind - вы думаете, это то, что мне нужно сделать - учитывая, что это тема моего вопроса и то, что я спросил выше? Спасибо за понимание   -  person JM4    schedule 26.05.2010
comment
да, я сделал этот комментарий, потому что вы, похоже, путаетесь между SSH и SSL. Это две разные вещи, и вы говорите, что это китайское для вас. Я не включил его в качестве ответа, потому что он не был очень полным. Удачи.   -  person WhirlWind    schedule 26.05.2010


Ответы (2)


Единственный способ, которым мне удалось выполнить ftp через SSL с использованием php, — это использовать функцию exec() php для выполнения curl< /а> команда. PHP-библиотека curl не работала, потому что в то время опция skip-pasv-ip не существовала, а это было абсолютно необходимо. Что-то типа:

curl --user <username:password> --disable-epsv --ftp-pasv --ftp-skip-pasv-ip --ftp-ssl --sslv2  --cert <path/to/certificate> -T <path/to/uploadfile> <hostname>

Возможно, вам придется изменить параметры скручивания в соответствии с вашими потребностями.

person Rob Apodaca    schedule 17.05.2010

Возможно, вы могли бы использовать ftp_ssl_connect в этом отношении, который используется для открытия безопасного соединения SSL-FTP, а загрузка файла — это просто прямой процесс, просто создайте подключение к серверу и поместите туда файл. Основным примером может быть:

//Create your connection
$ftp_conn = ftp_ssl_connect( $host, $you_can_provide_a_port );

//Login
$login_result = ftp_login($ftp_conn, $user, $pass);

if( $login_result )
{
    //Set passive mode
    ftp_pasv( $ftp_conn, true );
    // Transfer file
    $transfer_result = ftp_put( $ftp_conn, $dest_file_path, $source_file_path, FTP_BINARY );

    //Verify if transfer was successfully made
    if( $transfer_result)
    {
        echo "Success";
    }
    else
    {
        echo "An error occured";
    }
}

Для справки: http://www.php.net/manual/en/function.ftp-ssl-connect.php

person falomir    schedule 17.05.2010
comment
Спасибо за совет. Я попробую и сообщу вам о результатах! - person JM4; 18.05.2010
comment
это не сработало так, как нужно. Мне дается клиент $host в качестве IP-адреса, и он просто истекает через 60 секунд. Я знаю, что FTPS работает, потому что я могу подключиться к локальному FTP-клиенту. - person JM4; 26.05.2010
comment
Если вышеперечисленное не работает. И соединение работает через настольную FTP-программу, у вас, вероятно, есть эта проблема. elitehosts.com/blog/ - person Tim; 07.12.2011