6.2. 为密钥管理器服务创建 secret


以下步骤使用 Luna HSM 的密钥、证书和配置来创建两个 secret。一个名为 login_secret,其中包含您的 HSM 分区密码。其他 secret 称为 luna_data_secret,其中包含您的证书、密钥和 chrystoki.conf 配置文件。Red Hat OpenShift Container Platform 环境中需要这些 secret,以启用 Key Manager 服务和 HSM 之间的安全通信。您可以创建一个 Ansible playbook 来标识要复制到的客户端证书。

先决条件

  • Luna HSM 的客户端证书。如需更多信息,请参阅 比较 NTLS 和 STC
  • 您必须在 Luna HSM 上禁用 ntls ipcheck,如需更多信息,请参阅 ntls ipcheck

流程

  1. 将 Luna 证书和密钥放在 /opt/luna 目录树中:

    $ cp <luna_client_name>.pem /opt/luna
    $ cp <luna_client_name>Key.pem /opt/luna
    Copy to Clipboard Toggle word wrap
    • <luna_client_name > 替换为 Luna 证书的名称。
  2. 从 HSM 设备下载服务器证书:

    $ scp -O <hsm-device.examle.com:server.pem> /opt/luna/
    Copy to Clipboard Toggle word wrap
  3. 可选:如果您有多个 HSM for HA,请从 HSM 中获取每个证书,并将其串联为一个文件:

    $ scp -O <hsm-device-01.examle.com:server-01.pem> /opt/luna/
    $ scp -O <hsm-device-02.examle.com:server-02.pem> /opt/luna/
    $ cat /opt/luna/cert/server-01.pem > /opt/luna/CAFile.pem
    $ cat /opt/luna/cert/server-02.pem >> /opt/luna/CAFile.pem
    Copy to Clipboard Toggle word wrap
  4. 更新您的 Crystoki.conf 文件,使其类似于如下:

    注意

    LunaClient-Minimal tarball 的内容提取到 Key Manager 容器的 /usr/local/luna/ 目录中。您必须更新 Crystoki.conf 文件中的路径以匹配此示例。

    Chrystoki2 = {
      LibUNIX = /usr/local/luna/libs/64/libCryptoki2.so;
      LibUNIX64 = /usr/local/luna/libs/64/libCryptoki2.so;
    }
    
    Luna = {
      DefaultTimeOut = 500000;
      PEDTimeout1 = 100000;
      PEDTimeout2 = 200000;
      PEDTimeout3 = 10000;
      KeypairGenTimeOut = 2700000;
      CloningCommandTimeOut = 300000;
      CommandTimeOutPedSet = 720000;
    }
    
    CardReader = {
      RemoteCommand = 1;
    }
    
    Misc = {
      PE1746Enabled = 0;
      ToolsDir = ./bin/64;
      PartitionPolicyTemplatePath = ./ppt/partition_policy_templates;
      ProtectedAuthenticationPathFlagStatus = 0;
      MutexFolder = ./lock;
    }
    
    LunaSA Client = {
      ReceiveTimeout = 20000;
      SSLConfigFile = /usr/local/luna/openssl.cnf;
      ClientPrivKeyFile = /usr/local/luna/<luna_client_name>Key.pem;
      ClientCertFile = /usr/local/luna/<luna_client_name>.pem;
      ServerCAFile = /usr/local/luna/CAFile.pem;
      NetClient = 1;
      TCPKeepAlive = 1;
      ServerName00 = <ip_address>;
      ServerPort00 = 1792;
      ServerHtl00 = 0;
    }
    Copy to Clipboard Toggle word wrap
    • <luna_client_name > 替换为 Luna 证书的名称。
    • <ip_address > 替换为 Luna HSM 的 IP 地址。
  5. 可选:如果要配置 HA,您必须为每个 HSM 的 IP 地址包括额外的条目,以及 VirtualTokenHASynchronize、和 HAConfigurations 参数的配置:

    ...
      ServerName00 = <ip_address>;
      ServerPort00 = 1792;
      ServerHtl00 = 0;
      ServerName01 = <ip_address>;
      ServerPort01 = 1792;
      ServerHtl01 = 0;
    }
    
    VirtualToken = {
      VirtualToken00Label = myHAGroup;
      VirtualToken00SN = <virtual_token_sn>;
      VirtualToken00Members = <virtual_token_member>,<virtual_token_member>;
    }
    
    HASynchronize = {
      myHAGroup = 1;
    }
    
    HAConfiguration = {
      haLogStatus = enabled;
    }
    Copy to Clipboard Toggle word wrap
    • <virtual_token_sn > 替换为第一个分区的序列号,并带有一个 1。例如,对于分区 545000014,使用值 1545000014
    • <virtual_token_member > 替换为您使用的 HSM 的分区序列号。
  6. chrystoki.conf 配置文件移到 /opt/luna

    $ mv chrystoki.conf /opt/luna
    Copy to Clipboard Toggle word wrap
  7. 创建名为 create-luna-secrets.yaml 的 Ansible playbook,以创建所需的 secret:

    ---
    - name: Create secrets with the HSM certs and hsm-login credentials
    ansible.builtin.include_role:
        name: rhoso_luna_hsm
        tasks_from: create_secrets
    vars:
        luna_client_name: <luna_client_name> 
    1
    
        chrystoki_conf_src: "/opt/luna/chrystoki.conf"
        luna_server_cert_src: "/opt/luna/<server.pem>" 
    2
    
        luna_client_cert_src: "/opt/luna/"
        luna_partition_password: "<my_partion_password>" 
    3
    
        kubeconfig_path: "<kubeconfig_path>" 
    4
    
        oc_dir: "<path_to_oc>" 
    5
    
        luna_data_secret: "luna_data_secret"
        login_secret: "login_secret"
    ---
    Copy to Clipboard Toggle word wrap
    1
    <luna_client_name > 替换为 Luna 证书的名称。
    2
    <server.pem > 替换为服务器证书的名称。
    3
    <my_partion_password& gt; 替换为您的 HSM 分区密码。
    4
    <kubeconfig_path > 替换为 .kube 配置文件的路径。例如: $HOME/.kube/config
    5
    <path_to_oc > 替换为 oc 的输出。
  8. 运行 Ansible play 书:

    ansible-playbook create-luna-secrets.yaml
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat