Menu Close

Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

35.2. 加密主机

先决条件

  • 确保集群主机上安装了 libreswan 3.15 或更高版本。如果需要 opportunistic 组功能,则需要 libreswan 版本 3.19 或更高版本。
  • 本主题描述了需要 62 字节的 IPsec 配置。如果集群在最大传输单元(MTU)值为 1500 字节的以太网网络中运行,则 SDN MTU 值必须更改为 1388 字节,以允许 IPsec 和 SDN 封装的开销。完成以下步骤,为集群中的节点更改 MTU:

    1. 编辑以下 ConfigMap 中的每个:node -config-master、node-config-infranode-config-compute

      1. 运行以下命令来编辑 ConfigMap。将 <config_map> 替换为要编辑的 ConfigMap 的名称。

        # oc edit cm <config_map> -n openshift-node
      2. mtu 参数更新为足以满足 IPsec 开销的 MTU 大小,如 1388 字节:

        networkConfig:
          mtu: 1388
    2. 运行以下命令来移除 SDN 接口:将 <ovs_pod_name> 替换为 OVS pod 的名称。

      # oc exec <ovs_pod_name> -- ovs-vsctl del-br br0
    3. 对于集群中的每个节点,完成以下步骤:

      1. 确认更新的 MTU 值已保存到 /etc/origin/node/node-config.yaml 文件中。
      2. 运行以下命令来重启 SDN 和 OVS pod:

        # oc delete pod -n openshift-sdn -l=app=ovs
        # oc delete pod -n openshift-sdn -l=app=sdn

35.2.1. 为 IPsec 配置证书

您可以使用 OpenShift Container Platform 内部证书颁发机构(CA)生成适合 IPsec 的 RSA 密钥。内部 CA 将通用名称(CN)值设置为 openshift-signer

  1. 运行以下命令在 master 节点上生成 RSA 证书:

    # export CA=/etc/origin/master
    
    # oc adm ca create-server-cert \
      --signer-cert=$CA/ca.crt --signer-key=$CA/ca.key \
      --signer-serial=$CA/ca.serial.txt \
      --hostnames='<hostname>' \ 1
      --cert=<hostname>.crt \ 2
      --key=<hostname>.key 3
    1 2 3
    <hostname> 替换为 节点的完全限定域名(FQDN)。
  2. 使用 openssl 将客户端证书、CA 证书和私钥文件组合到 PKCS#12 文件中,这是多个证书和密钥的通用文件格式:

    # openssl pkcs12 -export \
      -in <hostname>.crt \ 1
      -inkey <hostname>.key \ 2
      -certfile  /etc/origin/master/ca.crt \
      -passout pass: \
      -out <hostname>.p12 3
    1 2 3
    使用节点的完全限定域名(FQDN)替换。
  3. 对于集群的每个节点,安全地传输您在上一步中为主机创建的文件,然后将 PKCS#12 文件导入到 libreswan 证书数据库中。

    W 选项留空,因为没有为 PKCS#12 文件分配密码,因为它只是临时的

    # ipsec initnss
    # pk12util -i <hostname>.p12 -d sql:/etc/ipsec.d -W ""
    # rm <hostname>.p12