使用自定义 TLS 证书为 HTTPS 连接至平台

IBM® Software Hub 包含一个自签名的 TLS 证书,用于启用 HTTPS 连接。 然而,所有 HTTPS 客户端均不信任此证书。 强烈建议您用自己的证书替换自签名证书。

完成这项任务需要哪些权限?
要完成此任务,您必须具有下列其中一个角色:
  • 集群管理员
  • 实例管理员
你需要在什么时候完成这项任务?
此任务为可选操作,但强烈建议执行。 在向用户授予平台 IBM Software Hub 访问权限之前,您应完成此任务。

若您在集群中安装了多个 IBM Software Hub 实例,请为每个实例完成此任务。

开始之前

运行命令的工作站必须配置为客户端工作站,并具备以下命令行界面:
  • IBM Software Hub 命令行界面: cpd-cli
  • OpenShift® 命令行界面: oc

详情请参阅: 设置客户端工作站以安装 IBM Software Hub

关于本任务

您必须提供的文件取决于您希望使用的路由类型 IBM Software Hub

路由类型 缺省证书 自定义 TLS 证书和密钥 CA 证书
传递 默认情况下,该路由使用自 IBM 签名证书。

不过,建议您用自定义证书替换此证书。

支持。

若使用直通路由,强烈建议选择此选项。

文件必须采用未加密的 PEM 格式。

未使用。
重新加密(默认) 默认情况下,该路由使用由入口 Red Hat OpenShift Container Platform 控制器提供的默认证书。
不过,建议您用自定义证书替换此证书。 有关详细信息,请参阅文档 Red Hat OpenShift Container Platform 中的 《替换默认入口证书》
默认使用Ingress控制器设置。
若需使用自定义证书,必须指定:
  • TLS 证书
  • TLS 关键
  • CA 证书

文件必须采用未加密的 PEM 格式。

默认使用Ingress控制器设置。
若需使用自定义证书,必须指定:
  • TLS 证书
  • TLS 关键
  • CA 证书

文件必须采用未加密的 PEM 格式。

要向 提供文件,请 cpd-cli创建一个密钥,该密钥需提供给 cpd-cli manage setup-route 命令。
创建使用 TLS 证书和 TLS 密钥的密钥的命令

以下示例创建名为 的 cpd-tls-secret密钥。

在运行该命令之前,您必须替换以下变量:

<TLS证书文件名>
TLS 证书文件的名称。 该示例假设您是在文件所在的目录中运行该命令。
<TLS密钥文件名>
TLS 密钥文件的名称。 该示例假设您是在文件所在的目录中运行该命令。
oc create secret generic cpd-tls-secret \
--namespace ${PROJECT_CPD_INST_OPERANDS} \
--from-file=tls.crt=./<tls-certificate-file-name> \
--from-file=tls.key=./<tls-key-file-name>

使用CA证书 TLS 和密钥 TLS 创建密钥的命令

以下示例创建名为 的 cpd-tls-secret密钥。

在运行该命令之前,您必须替换以下变量:

<CA证书文件名>
CA证书文件的名称。 该示例假设您是在文件所在的目录中运行该命令。
<TLS证书文件名>
TLS 证书文件的名称。 该示例假设您是在文件所在的目录中运行该命令。
<TLS密钥文件名>
TLS 密钥文件的名称。 该示例假设您是在文件所在的目录中运行该命令。
oc create secret generic cpd-tls-secret \
--namespace ${PROJECT_CPD_INST_OPERANDS} \
--from-file=ca.crt=./<ca-certificate-file-name> \
--from-file=tls.crt=./<tls-certificate-file-name> \
--from-file=tls.key=./<tls-key-file-name>

过程

  1. 登录 cpd-cli 到集群 Red Hat OpenShift Container Platform
    ${CPDM_OC_LOGIN}
    请记住: CPDM_OC_LOGIN 是一个别名,代表 命令 cpd-cli manage login-to-ocp
  2. 运行该 cpd-cli manage setup-route 命令。

    您运行的命令取决于您使用的是直通路由还是重新加密路由:


    传递路由

    在运行该命令之前,您必须替换以下变量:

    <certificate-secret-name>
    包含 TLS 证书和 TLS 密钥的密钥名称。
    cpd-cli manage setup-route \
    --cpd_instance_ns=${PROJECT_CPD_INST_OPERANDS} \
    --route_type=passthrough \
    --route_secret=<certificate-secret-name>

    重新加密路由

    在运行该命令之前,您必须替换以下变量:

    <certificate-secret-name>
    包含CA证书、 TLS 证书和 TLS 密钥的密钥名称。
    cpd-cli manage setup-route \
    --cpd_instance_ns=${PROJECT_CPD_INST_OPERANDS} \
    --route_secret=<certificate-secret-name>

    提示: 若不确定路由是直通路由还是重新加密路由,请运行:
    oc get route cpd -n=${PROJECT_CPD_INST_OPERANDS} -o "jsonpath={.spec.tls.termination}"

    该命令返回 passthroughreencrypt

下一步操作

若与 集成, Identity Management ServiceIBM Cloud Pak foundational services 则必须同时更新 路由 cp-console 上的 TLS 证书。 有关更多信息,请参阅 IBM Cloud Pak foundational services 文档中的《使用配置映射更新自定义主机名和 TLS 密钥 》: