3.7.3. 将不信任的 TLS 证书导入到 OpenShift Dev Spaces


默认情况下,OpenShift Dev Spaces 组件之间的外部通信通过 TLS 加密。OpenShift Dev Spaces 组件与代理、源代码存储库和身份提供程序等外部服务的通信可能还需要 TLS。所有使用 TLS 加密的通信都需要使用由可信证书颁发机构(CA)签名的 TLS 证书。

当 OpenShift Dev Spaces 组件或外部服务使用的证书由不信任的 CA 签名时,您必须将 CA 证书导入到 OpenShift Dev Spaces 实例,以便每个 OpenShift Dev Spaces 组件将证书视为可信 CA 签名。您必须在以下情况下完成此操作:

  • 底层 OpenShift 集群使用由不受信任的 CA 签名的 TLS 证书。OpenShift Dev Spaces 服务器或工作空间组件连接到外部 OIDC 供应商或使用由不受信任的 CA 签名的 TLS 证书的 Git 服务器。

OpenShift Dev Spaces 使用项目中标记的 ConfigMap 对象作为 TLS 证书的源。ConfigMap 对象可以有任意数量的密钥,各自具有随机数量的证书。

注意

当 OpenShift 集群包含通过 集群范围的代理配置添加的集群范围 可信 CA 证书时,OpenShift Dev Spaces Operator 会检测到它们并自动注入 ConfigMap 对象。OpenShift Dev Spaces 会自动使用 config.openshift.io/inject-trusted-cabundle="true" 标签标记 ConfigMap。基于此注解,OpenShift 会在 ConfigMap 对象的 ca-bundle.crt 键内自动注入集群范围的可信 CA 证书。

重要

一些 OpenShift Dev Spaces 组件需要一个完整的证书链来信任端点。如果使用中间证书配置集群,请将整个链(包括自签名 root)添加到 OpenShift Dev Spaces。

3.7.3.1. 在 OpenShift Dev Spaces 中添加新 CA 证书

证书文件通常存储为 Base64 文件,扩展带有 .pem.crt.ca-bundle 等等。包含证书文件的所有 secret 应该使用 Base64 编码的证书,而不是二进制编码的证书。以下流程适用于已安装和运行的实例,以及要安装的实例。

先决条件

  • 具有目标 OpenShift 集群的管理权限的活跃 oc 会话。请参阅 CLI 入门
  • 存在 OpenShift Dev Spaces 的命名空间。
  • OpenShift Dev Spaces 已经使用一些保留的文件名自动将证书注入 ConfigMap 对象中。避免使用以下保留文件名保存您的证书:

    • ca-bundle.crt
    • ca.crt

流程

  1. 保存导入本地文件系统所需的证书。

    小心
    • 具有简介短语 BEGIN TRUSTED CERTIFICATE CERTIFICATE 的证书可能包括在 PEM TRUSTED CERTIFICATE 格式,它不会被 Java 不支持。使用以下命令将其转换为支持的 CERTIFICATE 格式:

      • openssl x509 -in cert.pem -out cert.cer
  2. 使用所需的 TLS 证书创建新 ConfigMap 对象:

    $ oc create configmap custom-certs --from-file=<bundle-file-path> -n=openshift-devspaces

    要应用多个捆绑包,请添加另一个 -from-file= <bundle_file_path >。另外,还可创建另一个 ConfigMap 对象。

  3. 使用 app.kubernetes.io/part-of=che.eclipse.orgapp.kubernetes.io/component=ca-bundle 标签标记创建的 ConfigMap 对象:

    $ oc label configmap custom-certs app.kubernetes.io/part-of=che.eclipse.org app.kubernetes.io/component=ca-bundle -n openshift-devspaces
  4. 如果 OpenShift Dev Spaces 之前没有部署,则部署 OpenShift Dev Spaces。否则等待 OpenShift Dev Spaces 推出完成。
  5. 重启正在运行的工作区以使更改生效。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.