You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Chef向OpenShift API请求时遇SSL验证失败的解决方法

碰到过类似的Chef与OpenShift/Minishift交互的SSL问题,给你几个可行的解决思路:

方法1:临时绕过Chef的SSL证书验证

如果只是测试环境,不想纠结证书问题,可以直接在Chef的http_request资源里关闭SSL验证。这是最快的临时方案,但生产环境绝对不建议使用,会带来安全风险。

示例代码:

http_request 'create_minishift_project' do
  url 'https://<你的Minishift API地址>/api/v1/projects'
  method :post
  headers(
    'Content-Type' => 'application/json',
    'Authorization' => 'Bearer <你的认证Token>'
  )
  body '{ "metadata": { "name": "my-new-project" } }'
  ssl_verify_mode :verify_none # 关闭SSL证书验证
end
方法2:让Minishift API接受HTTP请求

如果你的场景允许非加密通信,可以修改Minishift配置,开启HTTP端口:

  • 先获取Minishift的IP:
    minishift ip
    
  • 配置OpenShift API Server启用HTTP监听:
    minishift openshift config set --api-server-arguments="--insecure-bind-address=0.0.0.0" --api-server-arguments="--insecure-port=8080"
    
  • 重启Minishift使配置生效:
    minishift restart
    

之后你就可以用http://<Minishift IP>:8080作为API地址发起请求,Chef无需处理SSL验证。

方法3:正确获取并导入Minishift的SSL证书(推荐用于正式环境)

你之前用OpenSSL下载证书失败,是因为没指定SNI(服务器名称指示)。Minishift的证书通常绑定了openshift这个服务器名,你可以通过IP+SNI参数来正确获取证书:

  1. 获取Minishift IP后,执行以下命令下载证书:
    openssl s_client -connect <Minishift IP>:8443 -servername openshift | openssl x509 -outform PEM > minishift-cert.pem
    
  2. 将证书复制到Chef的信任证书目录:
    cp minishift-cert.pem /etc/chef/trusted_certs/
    
  3. 确保证书文件权限正确(Chef客户端能读取),之后再运行配方就不会出现SSL验证失败的问题了。

内容的提问来源于stack exchange,提问作者dafjk jkjdfkj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:41:03