OpenShift v0.3.3 样例应用中自签名证书验证失败的解决方法

发布时间 - 2026-01-24 00:00:00    点击率:

本文详解 openshift 0.3.3 `sample-app` 部署过程中因工作目录错位导致的自签名证书校验失败问题(如 `x509: certificate signed by unknown authority`),并提供精准的目录切换方案与安全实践建议。

在 OpenShift Origin v0.3.3 的早期样例应用(sample-app)部署流程中,一个极易被忽略却至关重要的细节是命令执行路径。错误通常表现为以下两类典型报错:

x509: certificate signed by unknown authority

例如运行以下命令时:

openshift ex policy add-user view anypassword:test-admin
# 或
openshift ex registry --create --credentials="${KUBECONFIG}"

根本原因并非证书本身无效或未被信任,而是 OpenShift 客户端(openshift 二进制)默认尝试从当前工作目录下加载本地生成的 TLS 证书与密钥(如 openshift.local.config/master/ca.crt、admin.kubeconfig 等)。而官方文档中的步骤存在隐式路径依赖:

  • 可选步骤 1(生成配置与证书):需在 origin/examples/sample-app/ 子目录中执行(例如 ./setup.sh),此时证书将生成于该目录下的 openshift.local.config/;
  • 后续步骤 4 及之后的 CLI 命令(如 openshift ex policy、openshift ex registry):文档默认假设你已返回 origin/ 根目录(即 openshift 二进制所在位置),并期望从 origin/openshift.local.config/ 加载证书。

⚠️ 若你在 sample-app/ 目录中生成了证书,却在 origin/ 根目录下运行命令,客户端将无法定位正确的 CA 证书,从而拒绝连接本地 https://localhost:8443 —— 这正是 x509: certificate signed by unknown authority 的真实来源。

✅ 正确做法是严格统一工作目录

  1. 进入样例应用目录并完成初始化:

    cd origin/examples/sample-app/
    ./setup.sh  # 此步生成 openshift.local.config/
  2. 所有后续 OpenShift CLI 命令必须在此目录(sample-app/)中执行

    # ✅ 正确:证书路径可被自动识别
    ../openshift ex policy add-user view anypassword:test-admin
    
    # ✅ 正确:使用相对路径调用二进制,且当前目录含有效配置
    ../openshift ex registry --create --credentials="openshift.local.config/master/admin.kubeconfig"

? 补充建议:

  • 不要通过注释 Fatal() 或跳过证书校验来“绕过”错误——这会破坏集群安全性,且掩盖根本问题;
  • 不推荐手动修改系统 CA 信任库(如向 /etc/pki/tls/certs/ca-bundle.crt 添加证书),因为 OpenShift 自签名证书仅对本机调试有效,且应由客户端配置而非系统级信任;
  • 检查当前使用的 kubeconfig 是否指向正确证书:
    grep "certificate-authority:" openshift.local.config/master/admin.kubeconfig
    # 应输出类似:certificate-authority: openshift.local.config/master/ca.crt

总结:该问题本质是路径敏感型配置管理问题,而非证书信任配置问题。遵循「在哪生成,就在哪运行」原则,即可彻底规避自签名证书校验失败,无需修改源码、不需调整系统证书库,安全、简洁、符合 OpenShift 设计预期。


# word  # app  # 解决方法  # red  # openshift  # https  # 客户端  # 而非  # 加载  # 文档  # 样例  # 成了  # 就在  # 目录下  # 在此  # 自动识别 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  如何快速搭建高效可靠的建站解决方案?  如何快速选择适合个人网站的云服务器配置?  5种Android数据存储方式汇总  智能起名网站制作软件有哪些,制作logo的软件?  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  魔毅自助建站系统:模板定制与SEO优化一键生成指南  实例解析angularjs的filter过滤器  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  zabbix利用python脚本发送报警邮件的方法  WEB开发之注册页面验证码倒计时代码的实现  网站制作软件有哪些,制图软件有哪些?  微信小程序 wx.uploadFile无法上传解决办法  香港服务器租用费用高吗?如何避免常见误区?  如何选择PHP开源工具快速搭建网站?  Laravel如何记录自定义日志?(Log频道配置)  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  Linux网络带宽限制_tc配置实践解析【教程】  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  韩国服务器如何优化跨境访问实现高效连接?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  如何在阿里云购买域名并搭建网站?  Laravel PHP版本要求一览_Laravel各版本环境要求对照  详解Oracle修改字段类型方法总结  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  佛山网站制作系统,佛山企业变更地址网上办理步骤?  利用python获取某年中每个月的第一天和最后一天  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  php打包exe后无法访问网络共享_共享权限设置方法【教程】  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  Java类加载基本过程详细介绍  简历在线制作网站免费版,如何创建个人简历?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  如何构建满足综合性能需求的优质建站方案?  如何用低价快速搭建高质量网站?  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  网站制作报价单模板图片,小松挖机官方网站报价?  如何在橙子建站上传落地页?操作指南详解  HTML 中动态设置元素 name 属性的正确语法详解  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  原生JS实现图片轮播切换效果  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  高防服务器租用指南:配置选择与快速部署攻略  如何用腾讯建站主机快速创建免费网站?  Laravel如何处理异常和错误?(Handler示例)  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  如何快速配置高效服务器建站软件?