为 IBM® Cloud Private Cloud Foundry 提供证书

在安装 IBM Cloud Private Cloud Foundry 之前,您可以提供自己的证书。

您可以使用自己的认证中心来创建证书,使用外部认证中心来生成证书或手动创建证书。 域证书由两部分组成,即根证书和密钥。

如果不使用自己的证书,将在安装期间使用您在 uiconfig.yml 文件中提供的应用程序域 bluemix_app_domain 和环境域 bluemix_env_domain 的值来创建证书。

完成以下步骤可以手动生成证书。

注释:应用程序和环境域的密钥均为必需,因此必须完成该过程两次。

  1. 生成根证书。

    • 运行以下命令:

      openssl genrsa -des3 -out rootCA.key 2048
      
    • 为证书提供密码。

    • 该证书存储在 rootCA.key 文件中。
  2. 对证书进行自签名:

    • 运行以下命令:

      openssl req -x509 -new -nodes -key rootCA.key -days 1024 -out rootCA.pem
      
    • 出现提示时,提供证书密码和组织信息。 该证书将在 1024 天后到期。 签名的证书存储在 rootCA.pem 文件中。

  3. rootCA.key 证书文件及其密码存储在安全位置。
  4. 为自签名证书生成域密钥。 运行以下命令:

      openssl req -new -newkey rsa:2048 -nodes -out star_<your_domain>.csr -keyout star_<your_domain>.key -subj "/C=<country_code>/ST=<state>/L=<locality>/O=<organization_name>/CN=*.<your_domain>"
    

    其中,<your_domain> 是 Cloud Foundry 实例的域名,例如 inter.mycompany.comsubj 参数包含以下数据:

    • <country_code> 是双字母国家或地区名称。
    • <state> 是省/自治区/直辖市的名称。
    • <locality> 是所在地名称,例如城市或乡镇。
    • <organization_name> 是组织或公司名称。 star_<your_domain>.csrstar_<your_domain>.key 文件创建完成。
  5. 生成域证书。 完成以下步骤:

    1. 运行以下命令来创建域证书扩展文件 ext_v3

      [ v3_req ]
      subjectAltName=DNS:*.<your_domain>,DNS:<your_domain>
      
    2. 生成域证书。 运行以下命令来创建 star_<your_domain>.crt 文件:

      openssl x509 -req -in star_<your_domain>.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out star_<your_domain>.crt -days 500 -extensions v3_req -extfile ext_v3
      

      其中,ext_v3 是您创建的域证书扩展文件的名称,<your_domain> 是 Cloud Foundry 实例的域名。

      该证书将在 500 天后到期。

  6. 在运行安装脚本之后,必须向 Cloud Foundry 提供证书值。 对于应用程序域和环境域,需要将以下文件的内容放入 launch_deployment.sh -c UICONFIG_TEMLATE_FIL 命令引用的 uiconfig-templates.yml 文件的 uiconfig 部分:

    • star_<your_domain>.crt
    • star_<your_domain>.key
    • rootCA.pem

    有关 uiconfig-templates.yml 文件内容的更多信息,请参阅安装 IBM® Cloud Private Cloud Foundry

    1. 手动将值添加到 uiconfig-templates.yml 文件。 例如:

      uiconfig:
        bluemix_apps_domain_cert: |+
          -----BEGIN CERTIFICATE-----
          -----END CERTIFICATE-----
        bluemix_apps_domain_cert_rsa_key: |+
          -----BEGIN PRIVATE KEY-----
          -----END PRIVATE KEY-----
        bluemix_env_domain_cert: |+
          -----BEGIN CERTIFICATE-----
          -----END CERTIFICATE-----
        bluemix_env_domain_cert_ca: |+
          -----BEGIN CERTIFICATE-----
          -----END CERTIFICATE-----
        bluemix_env_domain_cert_rsa_key: |+
          -----BEGIN PRIVATE KEY-----
          -----END PRIVATE KEY-----
      

      注:显示的顺序必须保持不变。 您可以包含一个或多个值集以启用多个域。

      • bluemix_apps_domain_certbluemix_env_domain_certstar_<env_domain/app_domain>.crt 文件的内容。
      • bluemix_apps_domain_cert_cabluemix_env_domain_cert_carootCA.pem 文件的内容。
      • bluemix_apps_domain_cert_rsa_keybluemix_env_domain_cert_rsa_keystar_<env_domain/app_domain>.key 文件的内容。
        1. 从命令行提供这些值。
      • 添加管理(环境)证书:

        ./cm bmxconfig -m [--key star_<your_domain>.key] [--cert star_<your_domain>.crt] [--rootCA rootCA.pem]
        
      • 添加应用程序证书:

        ./cm bmxconfig -a [--key star_<your_domain>.key] [--cert star_<your_domain>.crt] [--rootCA rootCA.pem]