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
$ oc get cm --selector=app.kubernetes.io/component=ca-bundle,app.kubernetes.io/part-of=che.eclipse.org -n openshift-devspacesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下内容来检查 ConfigMap 的内容:
oc get cm <name> -n openshift-devspaces -o yaml
$ oc get cm <name> -n openshift-devspaces -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Dev Spaces Pod Volumes 列表中包含一个使用
ca-certs-mergedConfigMap 作为 data-source 的卷。要获取 OpenShift Dev Spaces Pod 的 Volumes 列表,请运行:oc get pod -o json <devspaces-pod-name> -n openshift-devspaces | jq .spec.volumes
$ oc get pod -o json <devspaces-pod-name> -n openshift-devspaces | jq .spec.volumesCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Dev Spaces 在 OpenShift Dev Spaces 服务器的
/public-certs/文件夹中挂载证书。要查看此文件夹中的文件列表,请输入:oc exec -t <devspaces-pod-name> -n openshift-devspaces -- ls /public-certs/
$ oc exec -t <devspaces-pod-name> -n openshift-devspaces -- ls /public-certs/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 OpenShift Dev Spaces 服务器日志中,每个证书都添加到 Java 信任存储中,包括配置的 OpenShift Dev Spaces 证书。查看它们:
oc logs <devspaces-pod-name> -n openshift-devspaces
$ oc logs <devspaces-pod-name> -n openshift-devspacesCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Dev Spaces 服务器 Java 信任存储包含证书。证书 SHA1 指纹位于信任存储中包含的证书的 SHA1 列表中。查看列表:
oc exec -t <devspaces-pod-name> -n openshift-devspaces -- keytool -list -keystore /home/user/cacerts Your keystore contains 141 entries: + (...)
$ oc exec -t <devspaces-pod-name> -n openshift-devspaces -- keytool -list -keystore /home/user/cacerts Your keystore contains 141 entries: + (...)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要在本地文件系统中获取证书的 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
$ 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:60Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在工作区级别上验证导入的证书
- 启动工作区,获取创建它的项目名称并等待工作区启动。
获取工作区 Pod 的名称:
oc get pods -o=jsonpath='{.items[0].metadata.name}' -n <workspace namespace> | grep '^workspace.*'$ oc get pods -o=jsonpath='{.items[0].metadata.name}' -n <workspace namespace> | grep '^workspace.*'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在工作区 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'$ oc get -o json pod <workspace pod name> -n <workspace namespace> | \ jq -r '.spec.containers[] | select(.name | startswith("theia-ide")).name'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在工作区命名空间内查找
ca-certsConfigMap:oc get cm ca-certs <workspace namespace>
$ oc get cm ca-certs <workspace namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
ca-certsConfigMap 中的条目是否包含您之前添加的所有附加条目。另外,它可以包含ca-bundle.crtreserved 条目。查看条目:oc get cm ca-certs -n <workspace namespace> -o json | jq -r '.data | keys[]' ca-bundle.crt source-config-map-name.data-key.crt
$ oc get cm ca-certs -n <workspace namespace> -o json | jq -r '.data | keys[]' ca-bundle.crt source-config-map-name.data-key.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确认
ca-certsConfigMap 已添加为工作区 Pod 中的卷:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认卷已挂载到容器中,特别是 Che-Theia IDE 容器中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 Che-Theia IDE 容器中的
/public-certs文件夹,并检查其内容是否与ca-certsConfigMap 中的条目列表匹配: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
$ 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.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow