如何在Rails应用程序中使用TLS身份验证连接到FTP服务器?

时间:2019-01-24 16:01:47

标签: ruby-on-rails ruby ftps

我已经设置了FTP服务器,并在this tutorial之后对服务器启用了TLS / SSL。设置完成后,我尝试从FileZilla连接到它并成功。现在,我想对我的rails应用程序执行相同的操作。

我遇到了类似的问题,并且有一些解决方案。但是所有解决方案建议忽略以下验证:

OpenSSL::SSL::VERIFY_NONE

但这超出了启用TLS的FTP服务器的目的。 我碰到了一篇文章,建议将ssl: true设置为:

ftps = Net::FTP.new(
    host,
    ssl: true,
    username: username,
    password: password
)

但是,这没有用。我得到

  

SSL_connect返回= 1 errno = 0状态=错误:证书验证失败(自签名证书)

我发现了一些有关参数的references,但对如何使用它们感到困惑。

1 个答案:

答案 0 :(得分:2)

您有一台具有自签名证书的服务器,SSL将无法验证始终。现在,您可以通过三种方式解决该问题:

  1. 更改代码,使其接受自签名证书(您已经声明这对您不起作用)。
  2. 请求有效证书(Letsencrypt似乎是一个不错的选择)。
  3. 使用mkcert创建用于开发的“有效”证书。

如果您的FTP服务器是公共服务器,则应使用#2。如果您只是做一些实验或设置本地开发服务器,则#3会有很大帮助。