【问题标题】:Chef apt_repository started failing with SSL verification errorsChef apt_repository 开始因 SSL 验证错误而失败
【发布时间】:2021-11-25 00:19:14
【问题描述】:

从过去 2 天开始,我们开始看到与 apt_repository 资源相关的 Chef 执行失败。也看到了厨师客户端执行的类似失败

Chef-solo 版本:12.19.36 操作系统:Ubuntu v18 & Ubuntuv14

请参阅以下来自 chef-solo 执行的错误。

==> core: [2021-10-04T14:36:46+00:00] ERROR: SSL Validation failure connecting to host: www.postgresql.org - SSL_connect returned=1 errno=0 state=error: certificate verify failed
==> core:
==> core:
==> core: ================================================================================
==> core: Error executing action create on resource 'remote_file[/var/chef/cache/https___www_postgresql_org_media_keys_ACCC4CF8_asc]'
==> core: ================================================================================
==> core:
==> core: OpenSSL::SSL::SSLError
==> core: ----------------------
==> core: SSL Error connecting to https://www.postgresql.org/media/keys/ACCC4CF8.asc - SSL_connect returned=1 errno=0 state=error: certificate verify failed
==> core:
==> core:
==> core: Resource Declaration:
==> core: ---------------------
==> core: # In /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.19.36/lib/chef/provider/apt_repository.rb
==> core:
==> core: 166: declare_resource(type, cached_keyfile) do
==> core: 167: source new_resource.key
==> core: 168: mode "0644"
==> core: 169: sensitive new_resource.sensitive
==> core: 170: action :create
==> core: 171: end
==> core: 172:
==> core:
==> core: Compiled Resource:
==> core:
==> core: ------------------
==> core: # Declared in /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.19.36/lib/chef/provider/apt_repository.rb:166:in `install_key_from_uri'
==> core:

【问题讨论】:

  • 不确定这是否与 Chef 有关,apt-getapt 命令本身是否工作正常?

标签: ssl chef-infra chef-client


【解决方案1】:

这与上周四的 Root CA Certificate Expiration 的 Let's Encrypt 证书有关。

对于 OpenSSL,您需要至少升级到 1.1,因为 1.0.1 处理证书链的方式存在错误。如果这不可行,您将需要从操作系统中删除 DST Root CA X3 证书。

Chef 还提供它自己的根证书,而不是操作系统。我必须从/opt/chef/embedded/ssl/certs/cacert.pem 中删除上述证书,并将 ISRG Root X1 添加到其中。

【讨论】:

  • 感谢戴夫的回复。按照您推荐的步骤解决问题。
  • 您还记得从 /opt/chef/embedded/ssl/certs/cacert.pem 中删除证书的命令吗?
  • @kivagant 我的解决方法(目前)涉及制作该 pem 的副本,使用文本编辑器对其进行编辑以进行上述更改,并创建一个厨师食谱,用更新版本替换原始食谱。此配方是运行列表中的第一个,因此在任何其他配方运行之前进行更改。
  • 我希望有一种方法可以避免将其完全复制到食谱模板中。我试图用最新的ca-certificates 中的链完全替换,但这会导致 AWS OpsWorks 中出现不清楚的问题。感谢您分享您的经验。
  • 在运行chef-client 时面临同样的问题。在节点上将openssl升级到1.1版本就够了吗,还是应该在节点和主机上都升级?
【解决方案2】:

您使用的是相当旧的 Chef 版本。请注意,厨师已经发布了删除过期证书以及升级 OpenSSL 的新版本。最新的 Chef 16 和 17 版本应该可以解决这个问题。

【讨论】:

  • 对于我的用例,AWS OpsWorks 仍在 Chef 12 上,所以在可预见的未来我还是会坚持下去。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
  • 1970-01-01
  • 1970-01-01
  • 2019-09-08
  • 2015-06-05
  • 2015-11-19
相关资源
最近更新 更多