Rails 上的 Vault ruby​​ 出现 ssl 连接错误

发布于 2025-01-16 12:32:25 字数 1423 浏览 2 评论 0原文

我有一个正在使用 vautl 的项目,我将它用于本地开发,其中 Rails 工作正常。

但是,当我想运行 rails c 控制台时,它给出以下错误:

/Users/xyz/.rvm/rubies/ruby-2.6.6/lib/ruby/2.6.0/net/protocol.rb:44:in `connect_nonblock': SSL_connect returned=1 errno=0 state=error: wrong version number (OpenSSL::SSL::SSLError)
    from /Users/xyz/.rvm/rubies/ruby-2.6.6/lib/ruby/2.6.0/net/protocol.rb:44:in `ssl_socket_connect'
    from /Users/xyz/.rvm/rubies/ruby-2.6.6/lib/ruby/2.6.0/net/http.rb:996:in `connect'
    from /Users/xyz/.rvm/rubies/ruby-2.6.6/lib/ruby/2.6.0/net/http.rb:930:in `do_start'
    from /Users/xyz/.rvm/rubies/ruby-2.6.6/lib/ruby/2.6.0/net/http.rb:925:in `start'
    from /Users/xyz/.rvm/gems/ruby-2.6.6@bb-rails/gems/vault-0.15.0/lib/vault/persistent.rb:698:in `start'

我在 `lib/utils/vault_config.rb 中有以下类

class VaultConfig
  def self.read(path)
    Vault.configure do |config|
      config.address = "http://127.0.0.1:8200"
      config.token = "my_tooken"
      config.ssl_verify = false
    end
    Vault.with_retries(Vault::HTTPConnectionError, Vault::HTTPError, attempts: 5) do
      secret = Vault.logical.read("secret/#{path}/#{Rails.env}")
      secret ||= Vault.logical.read("secret/#{path}")
      secret && OpenStruct.new(secret.data)
    end
  end
end

,我正在运行 Vault 开发实例,它位于 http 不是 https,因为它仅用于开发。那么如何确保rails c 不应该使用ssl。

I have one project we are using vautl I am using it for local development, Where Rails s working fine.

But when I want to run rails c console it give me following error

/Users/xyz/.rvm/rubies/ruby-2.6.6/lib/ruby/2.6.0/net/protocol.rb:44:in `connect_nonblock': SSL_connect returned=1 errno=0 state=error: wrong version number (OpenSSL::SSL::SSLError)
    from /Users/xyz/.rvm/rubies/ruby-2.6.6/lib/ruby/2.6.0/net/protocol.rb:44:in `ssl_socket_connect'
    from /Users/xyz/.rvm/rubies/ruby-2.6.6/lib/ruby/2.6.0/net/http.rb:996:in `connect'
    from /Users/xyz/.rvm/rubies/ruby-2.6.6/lib/ruby/2.6.0/net/http.rb:930:in `do_start'
    from /Users/xyz/.rvm/rubies/ruby-2.6.6/lib/ruby/2.6.0/net/http.rb:925:in `start'
    from /Users/xyz/.rvm/gems/ruby-2.6.6@bb-rails/gems/vault-0.15.0/lib/vault/persistent.rb:698:in `start'

I have following class in `lib/utils/vault_config.rb

class VaultConfig
  def self.read(path)
    Vault.configure do |config|
      config.address = "http://127.0.0.1:8200"
      config.token = "my_tooken"
      config.ssl_verify = false
    end
    Vault.with_retries(Vault::HTTPConnectionError, Vault::HTTPError, attempts: 5) do
      secret = Vault.logical.read("secret/#{path}/#{Rails.env}")
      secret ||= Vault.logical.read("secret/#{path}")
      secret && OpenStruct.new(secret.data)
    end
  end
end

I am running vault development instance and it is in http not https and as it is for development only. So how can make sure rails c should not use ssl.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文