本文为亲自实践  全文参考 http://www.linuxidc.com/Linux/2012-09/71129.htm 

ftps是借助ssl协议加密的,ssl是为http/smtp 等加密设置的。sftp是借助ssh加密,ssh是为telnet/ftp等加密,建立传输通道而设计的

ssh建立通道就是为了加密和传输,ftps 从原理上将就是 ftp-over-ssl的意思即ftp借助ssl协议加密传输,不但要用ftp服务器还要用ssl协

议加密。sftp协议是ssh中的一条独立的协议,利用sftp服务器就可以传输数据。

下面为搭建&测试  此实验中ca 服务器与 ftp服务器处于同一台机器上

1.安装- 直接用 yum安装, 修改配置文件即可

2.修改配置文件。

     1)直接cp 原来的配置文件(简单做个备份)

          cp vsftpd.conf   vsftpd.conf.bak

     2)修改新的配置文件,配置文件内容如下:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ftpd_banner=Welcome zhongyan FTP Server  ^_^ !     
download_enable=NO                                            #禁止下载
anonymous_enable=NO                                         #禁止匿名用户登录
local_enable=YES                                                    #允许实体用户登录                                                                                  
idle_session_timeout=600 
write_enable=YES          
local_umask=022
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/vsftpd.log
chroot_list_enable=YES                                         #是否启用chroot文件
chroot_list_file=/etc/vsftpd/chroot_list                 #指定chroot文件位置
listen=YES                                                            
listen_port=3232
listen_address=0.0.0.0
pasv_enable=YES                                                   #是否开启被动模式
pasv_min_port=22222
pasv_max_port=22228
pam_service_name=vsftpd                                    #pam模块的名称
userlist_enable=YES                                              #启用userlist_enable 
userlist_deny=NO                                                 #如果值为NO 则只有在列表中的用户名才能使用ftp    如果值为YES时 则列表里的用户不能访问。
userlist_file=/etc/vsftpd/user_list                          #指定文件位置
#tcp_wrappers=YES

                                                      #如下配置文件内容设置ssl传输加密。   下一部分详解。
####ssl#####
ssl_enable=YES
ssl_sslv2=YES

ssl_tlsv1=YES
ssl_sslv3=YES

force_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/etc/vsftpd/certs/vsftpd.cert
rsa_private_key_file=/etc/vsftpd/certs/vsftpd.key

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

无注释版本配置文件可以直接粘贴奥!!:

ftpd_banner=Welcome to zhongyan FTP Server  ^_^ !
download_enable=NO
anonymous_enable=NO
local_enable=YES
idle_session_timeout=600
write_enable=YES
local_umask=022
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/vsftpd.log
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
listen_port=21
listen_address=0.0.0.0
pasv_enable=YES
pasv_min_port=22222
pasv_max_port=22228
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
#tcp_wrappers=YES

####ssl#####
ssl_enable=YES
ssl_sslv2=YES

ssl_tlsv1=YES
ssl_sslv3=YES

force_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/etc/vsftpd/certs/vsftpd.cert
rsa_private_key_file=/etc/vsftpd/certs/vsftpd.key

################################################################


3,设置传输方式为ssl加密传输(重点在此)搭建ca服务器。

     首先检查下是否安装了 openssl 

    cd /etc/pki/tls/

    vim openssl.cnf

     linux  ftps ftp-over-ssl 配置实验_ftps  ftp-over-ssl f


     cd /etc/pki/CA/       #切换到与CA服务器有关的目录

     mkdir certs         #建立与证书有关的目录

     mkdir newcerts     #与新证书有关的目录

     mkdir crl       #证书吊销列表

     touch index.txt

     touch serial

     echo "01"  >  serial      #给serial一个初始值

     openssl genrsa 1024 > private/cakey.pem  #使用非对称加密算法rsa,采用1024为算法,得到一个密钥存放在private/cakey.pem中

     chmod 600 private/cakey.pem       #私钥不允许别人查看,所以将cakey.pem文件的权限改为600,只有所属用户可以读写

     openssl req -new -key private/cakey.pem -x509 -out  cacert.pem -days 3650    #使用CA服务器自己的私钥cakey.pem产生一个证书cacert.pem

     linux  ftps ftp-over-ssl 配置实验_ftps  ftp-over-ssl f_02

          此处填写 本ca服务器的站点,其他的使用默认即可

     

     mkdir -pv /etc/vsftpd/certs     #创建一个目录,存放于vsftp有关的证书,证书请求,密钥

     cd /etc/vsftpd/certs/

     openssl genrsa 1024   > vsftpd.key   #非对称加密算法rsa,使用1024位,算出一个密钥vsftp.key

     openssl req -new -key vsftpd.key -out vsftpd.csr   #利用私钥vsftp.key产生一个证书请求文件vsftp.csr

     linux  ftps ftp-over-ssl 配置实验_ftps  ftp-over-ssl f_03

          此处填写 ftp站点的 fqdn全称。

     openssl ca -in vsftpd.csr -out vsftpd.cert       #利用证书请求文件的到一个证书vsftp.cert

     chmod 600 *      #将该目录下的文件权限全部改为600,即所属用户可读写

     

     修改配置文件:

     添加上上述配置文件中关于ssl部分的配置。


4,。启动并设置开机启动

     chkconfig  vsftpd on 

      /etc/init.d/vsftpd  start

5.验证

    

 采用客户端的方式来验证

     下载:FlashFXP 5 

      配置如下:

linux  ftps ftp-over-ssl 配置实验_ftps  ftp-over-ssl f_04

当点击链接按钮时:

     会显示出颁发的证书  然后点击保存 或者保存一次   验证上传下载效果。(具体配置根据需求不同)

linux  ftps ftp-over-ssl 配置实验_ftps  ftp-over-ssl f_05


到此为止 已经安装完毕 并且可以登录。