本文详解 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 二

⚠️ 若你在 sample-app/ 目录中生成了证书,却在 origin/ 根目录下运行命令,客户端将无法定位正确的 CA 证书,从而拒绝连接本地 https://localhost:8443 —— 这正是 x509: certificate signed by unknown authority 的真实来源。
✅ 正确做法是严格统一工作目录:
进入样例应用目录并完成初始化:
cd origin/examples/sample-app/ ./setup.sh # 此步生成 openshift.local.config/
所有后续 OpenShift CLI 命令必须在此目录(sample-app/)中执行:
# ✅ 正确:证书路径可被自动识别 ../openshift ex policy add-user view anypassword:test-admin # ✅ 正确:使用相对路径调用二进制,且当前目录含有效配置 ../openshift ex registry --create --credentials="openshift.local.config/master/admin.kubeconfig"
? 补充建议:
grep "certificate-authority:" openshift.local.config/master/admin.kubeconfig # 应输出类似:certificate-authority: openshift.local.config/master/ca.crt
总结:该问题本质是路径敏感型配置管理问题,而非证书信任配置问题。遵循「在哪生成,就在哪运行」原则,即可彻底规避自签名证书校验失败,无需修改源码、不需调整系统证书库,安全、简洁、符合 OpenShift 设计预期。