配置很简单,但是需要注意的有:

  1. 应使用listen的ssl参数取代ssl on;
  2. cert文件应包含整个证书链,内容顺序必须是证书链的逆序,即cert文件头是本服务器的证书、中间是中间CA、最后是根CA。可以用下述命令检查
  3. ssl_protocols中只能包含TLS

 

域名验证通配符证书主要有:
GeoTrust RapidSSL Wildcard
Comodo PositiveSSL Wildcard
Comodo EssentialSSL Wildcard
GlobalSign AlphaSSL Wildcard

兼容性:GeoTrust>Comodo>GlobalSign

市场占用率文章:http://w3techs.com/technologies/overview/ssl_certificate/all

基本上最高端兼容性最好的CA都在Symantec手里了

SSLEngine on
SSLProtocol all -SSLv2 //只允许SSLv3和TLSv1,SSLv2有缺陷禁止掉
SSLCipherSuite RSA:DH:DSS:!EXP:!NULL:!ADH:!EDH:!LOW:!RC4:!MD5:HIGH:MEDIUM //最终的结果就是Key Exchange=RSA/DH,Authentication=RSA/DSS,Cipher Encoding=AES(128/256)/3DES(168),MAC Digest=SHA1
SSLCertificateFile /etc/ssl/certs/nnlm.cer //CA颁发的证书
SSLCertificateKeyFile /etc/ssl/private/nnlm.key //证书的私钥
SSLCertificateChainFile /etc/ssl/certs/chain.cer //证书链,所有的证书链全部写到一个文件里面

下载脚本 http://www.castaglia.org/openssl/contrib/cert-tool ,修改cert-tool中openssl的路径,用这个脚本调用OpenSSL自签名颁发一个证书
cert-tool --create-ca=serverca --signing-ca=self
cert-tool --create-cert=server --signing-ca=serverca.cert.pem --signing-key=serverca.key.pem

修改proftpd.conf,增加TLS配置

TLSEngine on #开启TLS
TLSLog /var/log/proftpd-tls.log #TLS日志
TLSProtocol SSLv23 #允许使用SSLv3和TLSv1
TLSRSACertificateFile /usr/local/etc/server.cert.pem #cert-tool生成的证书
TLSRSACertificateKeyFile /usr/local/etc/server.key.pem #cert-tool生成的key
TLSCACertificateFile /usr/local/etc/serverca.cert.pem #cert-tool生成的CA证书
TLSVerifyClient off #不验证客户端证书。如要启用客户端证书验证,则需要用TLSCACertificateFile这个CA来颁发客户端证书
TLSRenegotiate required off #不强制要求重协商

另外加密传输需要使用FTP命令PROT,如果Deny ALL过,需要Allow
DenyAll AllowAll