7.4. 从软件包部署 Keylime registrar


注册器是包含所有代理的数据库的 Keylime 组件,它托管 TPM 供应商的公钥。在注册器的 HTTPS 服务接受可信平台模块(TPM)公钥后,它提供了一个接口来获取这些公钥以进行检查配额。

重要

要维护信任链,请保持运行注册器的系统的安全,并在您的控制之下。

您可以根据您的要求,在单独的系统或作为 Keylime 按整齐的同一系统上安装注册器。在单独的系统上运行验证器和注册器可提供更好的性能。

注意

要将配置文件保留在置入目录中,请使用具有两位数字前缀的文件名,例如 /etc/keylime/registrar.conf.d/00-registrar-ip.conf。配置处理以字典顺序读取置入目录中的文件,并对每个选项设置为它读取的最后一个值。

前提条件

  • 您有访问安装和运行 Keylime 验证器的系统的网络权限。更多信息请参阅 第 7.2 节 “从软件包部署 Keylime verifier”
  • 您在要安装 Keylime 组件的系统上有 root 权限和网络连接。
  • 您可以访问 Keylime 保存来自注册中心的数据的数据库。您可以使用以下数据库管理系统:

    • SQLite (默认)
    • PostgreSQL
    • MySQL
    • MariaDB
  • 您有来自您的证书颁发机构的有效密钥和证书。

流程

  1. 安装 Keylime 注册器:

    # dnf install keylime-registrar
  2. 通过在 /etc/keylime/registrar.conf.d/ 目录中创建一个新的 .conf 文件来定义注册中心的 IP 地址和端口,例如:/etc/keylime/registrar.conf.d/00-registrar-ip.conf,其内容如下:

    [registrar]
    ip = <registrar_IP_address>
    • <registrar_IP_address> 替换为注册中心的 IP 地址。或者,使用 ip = *ip = 0.0.0.0 将注册器绑定到所有可用 IP 地址。
    • 可选,使用 port 选项更改 Keylime 代理连接的端口。默认值为 8890
    • 可选,使用 tls_port 选项更改 Keylime 验证器和租户连接的 TLS 端口。默认值为 8891
  3. 可选:为代理列表配置注册数据库。默认配置使用 registrar 的 /var/lib/keylime/reg_data.sqlite 目录中的 SQLite 数据库。您可以在 /etc/keylime/registrar.conf.d/ 目录中创建一个新的 .conf 文件,例如: /etc/keylime/registrar.conf.d/00-db-url.conf,其内容如下:

    [registrar]
    database_url = <protocol>://<name>:<password>@<ip_address_or_hostname>/<properties>

    <protocol>://<name>:<password>@<ip_address_or_hostname>/<properties> 替换为数据库的 URL,如 postgresql://registrar:EKYX-bqY2?#raXm@198.51.100.1/registrardb

    确保您使用的凭证对 Keylime 有权限,以创建数据库结构。

  4. 在注册器中添加证书和密钥:

    • 您可以使用默认配置,并将密钥和证书加载到 /var/lib/keylime/reg_ca/ 目录中。
    • 或者,您可以在配置中定义密钥和证书的位置。在 /etc/keylime/registrar.conf.d/ 目录中创建一个新的 .conf 文件,例如: /etc/keylime/registrar.conf.d/00-keys-and-certs.conf,其内容如下:

      [registrar]
      tls_dir = /var/lib/keylime/reg_ca
      server_key = </path/to/server_key>
      server_key_password = <passphrase1>
      server_cert = </path/to/server_cert>
      trusted_client_ca = ['</path/to/ca/cert1>', '</path/to/ca/cert2>']
      注意

      使用绝对路径定义密钥和证书位置。或者,您可以在 tls_dir 选项中定义目录,并使用相对于该目录的路径。

  5. 在防火墙中打开端口:

    # firewall-cmd --add-port 8890/tcp --add-port 8891/tcp
    # firewall-cmd --runtime-to-permanent

    如果您使用其他端口,请将 88908891 替换为 .conf 文件中定义的端口号。

  6. 启动 keylime_registrar 服务:

    # systemctl enable --now keylime_registrar
    注意

    在默认配置中,在启动 keylime_registrar 服务前启动 keylime_verifier,因为验证器会为其他 Keylime 组件创建 CA 和证书。使用自定义证书时不需要这个顺序。

验证

  • 检查 keylime_registrar 服务是否活跃且在运行:

    # systemctl status keylime_registrar
    ● keylime_registrar.service - The Keylime registrar service
         Loaded: loaded (/usr/lib/systemd/system/keylime_registrar.service; disabled; vendor preset: disabled)
         Active: active (running) since Wed 2022-11-09 10:10:17 EST; 1min 42s ago
    ...
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.