3.7.3.2. 导入的证书问题的故障排除


如果在添加证书后出现问题,请验证 OpenShift Dev Spaces 实例级别和工作空间级别上的指定的值。

在 OpenShift Dev Spaces 实例级别验证导入的证书

  • 如果 OpenShift Dev Spaces Operator 部署,则 CheCluster 所在的命名空间会包含带正确内容的 ConfigMap 对象:

    $ oc get cm --selector=app.kubernetes.io/component=ca-bundle,app.kubernetes.io/part-of=che.eclipse.org -n openshift-devspaces
    Copy to Clipboard

    使用以下命令检查 ConfigMap 对象的内容:

    $ oc get cm <name> -n openshift-devspaces -o yaml
    Copy to Clipboard
  • OpenShift Dev Spaces Pod Volumes list 包含使用 ca-certs-merged ConfigMap 对象作为数据源的卷。要获取 OpenShift Dev Spaces Pod 的 Volumes 列表,请运行:

    $ oc get pod -l app.kubernetes.io/component=devspaces -o "jsonpath={.items[0].spec.volumes}" -n openshift-devspaces
    Copy to Clipboard
  • OpenShift Dev Spaces 在 OpenShift Dev Spaces 服务器的 /public-certs/ 文件夹中挂载证书。要查看此文件夹中的文件列表,请输入:

    $ oc exec -t deploy/devspaces -n openshift-devspaces -- ls /public-certs/
    Copy to Clipboard
  • 在 OpenShift Dev Spaces 服务器日志中,每个证书都添加到 Java 信任存储中,包括配置的 OpenShift Dev Spaces 证书。查看它们:

    $ oc logs deploy/devspaces -n openshift-devspaces
    Copy to Clipboard
  • OpenShift Dev Spaces 服务器 Java 信任存储包含证书。证书 SHA1 指纹位于信任存储中包含的证书的 SHA1 列表中。查看列表:

    $ oc exec -t deploy/devspaces -n openshift-devspaces -- keytool -list -keystore /home/user/cacerts
    Your keystore contains 141 entries:
    +
    (...)
    Copy to Clipboard

    要在本地文件系统中获取证书的 SHA1 哈希,请运行:

    $ openssl x509 -in <certificate-file-path> -fingerprint -noout
    SHA1 Fingerprint=3F:DA:BF:E7:A7:A7:90:62:CA:CF:C7:55:0E:1D:7D:05:16:7D:45:60
    Copy to Clipboard

在工作区级别上验证导入的证书

  • 启动工作区,获取创建它的项目名称并等待工作区启动。
  • 获取工作区 Pod 的名称:

    $ oc get pods -o=jsonpath='{.items[0].metadata.name}' -n <workspace namespace> | grep '^workspace.*'
    Copy to Clipboard
  • 在工作区 Pod 中获取 Che-Theia IDE 容器的名称:

    $ oc get -o json pod <workspace pod name>  -n <workspace namespace> | \
        jq -r '.spec.containers[] | select(.name | startswith("theia-ide")).name'
    Copy to Clipboard
  • 在工作区命名空间中查找 che-trusted-ca-certs ConfigMap 对象:

    $ oc get cm che-trusted-ca-certs -n <workspace namespace>
    Copy to Clipboard
  • 检查 che-trusted-ca-certs ConfigMap 中的条目是否包含您之前添加的所有额外条目。另外,它可以包含 ca-bundle.crt 保留条目。查看条目:

    $ oc get cm che-trusted-ca-certs -n <workspace namespace> -o json | jq -r '.data | keys[]'
    ca-bundle.crt
    source-config-map-name.data-key.crt
    Copy to Clipboard
  • 确认 che-trusted-ca-certs ConfigMap 对象已添加为工作区 Pod 中的卷:

    $ oc get -o json pod <workspace pod name> -n <workspace namespace> | \
        jq '.spec.volumes[] | select(.configMap.name == "che-trusted-ca-certs")'
    {
      "configMap": {
        "defaultMode": 420,
        "name": "ca-certs"
      },
      "name": "che-self-signed-certs"
    }
    Copy to Clipboard
  • 确认卷已挂载到容器中,特别是 Che-Theia IDE 容器中:

    $ oc get -o json pod <workspace pod name> -n <workspace namespace> | \
       jq '.spec.containers[] | select(.name == "<theia ide container name>").volumeMounts[] | select(.name == "che-trusted-ca-certs")'
    {
      "mountPath": "/public-certs",
      "name": "che-trusted-ca-certs",
      "readOnly": true
    }
    Copy to Clipboard
  • 检查 Che-Theia IDE 容器中的 /public-certs 文件夹,并检查其内容是否与 custom-certs ConfigMap 中的条目列表匹配:

    $ oc exec <workspace pod name> -c <theia ide container name> -n <workspace namespace> -- ls /public-certs
    ca-bundle.crt
    source-config-map-name.data-key.crt
    Copy to Clipboard
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat