Chef 使用 remote_file 获取 https 资源时的内部证书问题

使用Chef Cookbook来实现自动化安装软件包时,软件包可能存放在一个内部的https Web服务器上,这个https服务器的证书可能是自签名的,或者是内部CA签发的。如果我们使用remote_file来下载该资源,就会遇到ssl certificate verification错误。

如果是自签名证书,可以使用knife ssl把该证书下载到信任证书目录下,

$ knife ssl fetch https://<package repository>
# check again.
$ knife ssl check https://<package repository>

如果是基于内部CA签发,则需要把内部CA的公开证书放到证书目录下。可以是统一的全局目录,也可以是用户的chef-repo目录。从自动化服务器环境的角度来说,应该统一放到第一个目录下。

/opt/chef/embedded/ssl/certs
# or,
chef-repo/.chef/trusted_certs

验证方式同上。