4.2. 创建 Data Grid Server Identities


服务器身份在安全域中定义,并使数据网格服务器能够将其身份证明给客户端。

4.2.1. 设置 SSL 标识

SSL 身份使用密钥存储,该密钥存储包含证书或证书链。

注意

如果安全域包含 SSL 身份,Data Grid 服务器会自动为使用这些安全域的端点启用加密。

流程

  1. 为 Data Grid 服务器创建密钥存储。

    重要

    数据网格服务器支持以下密钥存储格式:JKS、JCEKS、PKCS12、BKS、BCFKS 和 UBER。

    在生产环境中,服务器证书应由可信证书颁发机构(包括 Root 或 Intermediate CA)签名。

  2. 将密钥存储添加到 $ISPN_HOME/server/conf 目录中。
  3. 向 Data Grid 服务器安全域添加服务器身份 定义。
  4. 指定密钥存储的名称以及密码和别名。

4.2.1.1. SSL 身份配置

以下示例为 Data Grid 服务器配置 SSL 身份:

<security xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="urn:infinispan:server:11.0 https://infinispan.org/schemas/infinispan-server-11.0.xsd"
          xmlns="urn:infinispan:server:11.0">
   <security-realms>
      <security-realm name="default">
         <server-identities> 1
            <ssl> 2
               <keystore path="server.p12" 3
                         relative-to="infinispan.server.config.path" 4
                         keystore-password="secret" 5
                         alias="server"/> 6
            </ssl>
         </server-identities>
      </security-realm>
   </security-realms>
</security>
1
定义 Data Grid 服务器的身份。
2
为 Data Grid 服务器配置 SSL 身份。
3
命名包含 Data Grid 服务器 SSL 证书的密钥存储。
4
指定密钥存储相对于 $ISPN_HOME 中的 server/conf 目录。
5
指定密钥存储密码。
6
指定密钥存储别名。

4.2.1.2. 自动生成密钥存储

配置 Data Grid 服务器,以在启动时自动生成密钥存储。

重要

自动生成的密钥存储:

  • 不应该在生产环境中使用。
  • 在需要时生成;例如,从客户端获取第一个连接时。
  • 包含您可以在 Hot Rod 客户端中使用的证书。

流程

  1. 在服务器配置中包含 keystore 元素的 generate-self-signed-certificate-host 属性。
  2. 为服务器证书指定主机名作为值。

带有生成的密钥存储的 SSL 服务器身份

<security xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="urn:infinispan:server:11.0 https://infinispan.org/schemas/infinispan-server-11.0.xsd"
          xmlns="urn:infinispan:server:11.0">
   <security-realms>
      <security-realm name="default">
         <server-identities>
            <ssl>
               <keystore path="server.p12"
                         relative-to="infinispan.server.config.path"
                         keystore-password="secret"
                         alias="server"
                         generate-self-signed-certificate-host="localhost"/> 1
            </ssl>
         </server-identities>
      </security-realm>
   </security-realms>
</security>

1
使用 localhost生成密钥存储

4.2.1.3. 调优 SSL 协议和加密套件

您可以通过 Data Grid 服务器 SSL 身份配置 SSL 引擎,以使用特定的协议和密码。

重要

您必须确保为您要使用的协议功能设置正确的密码;例如 HTTP/2 ALPN。

流程

  1. engine 元素添加到您的 Data Grid 服务器 SSL 身份。
  2. 使用 enabled-protocolsenabled-ciphersuites 属性配置 SSL 引擎。

SSL 引擎配置

<security xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="urn:infinispan:server:11.0
          https://infinispan.org/schemas/infinispan-server-11.0.xsd"
          xmlns="urn:infinispan:server:11.0">
   <security-realms>
      <security-realm name="default">
         <server-identities>
            <ssl>
               <keystore path="server.p12"
                         relative-to="infinispan.server.config.path"
                         keystore-password="secret" alias="server"/>
               <engine enabled-protocols="TLSv1.2 TLSv1.1" 1
                       enabled-ciphersuites="SSL_RSA_WITH_AES_128_GCM_SHA256 2
                       SSL_RSA_WITH_AES_128_CBC_SHA256"/>
            </ssl>
         </server-identities>
      </security-realm>
   </security-realms>
</security>

1
将 SSL 引擎配置为使用 TLS v1 和 v2 协议。
2
配置 SSL 引擎以使用指定的密码套件。

4.2.2. 设置 Kerberos 标识

Kerberos 身份使用 keytab 文件,其中包含来自 Kerberos 密码的服务主体名称和加密密钥。

注意

keytab 文件可以包含用户和服务帐户主体。但是,Data Grid 服务器只使用服务主体。因此,Data Grid 服务器可以为客户端提供身份,并允许客户端与 Kerberos 服务器进行身份验证。

在大多数情况下,您可以为 Hot Rod 和 REST 连接器创建唯一的主体。例如,您在"INFINISPAN.ORG"域中有一个"datagrid"服务器。在这种情况下,您应该创建以下服务主体:

  • HotRod/datagrid@INFINISPAN.ORG 标识 Hot Rod 服务。
  • HTTP/datagrid@INFINISPAN.ORG 标识 REST 服务。

流程

  1. 为 Hot Rod 和 REST 服务创建 keytab 文件。

    Linux
    $ ktutil
    ktutil:  addent -password -p datagrid@INFINISPAN.ORG -k 1 -e aes256-cts
    Password for datagrid@INFINISPAN.ORG: [enter your password]
    ktutil:  wkt http.keytab
    ktutil:  quit
    Microsoft Windows
    $ ktpass -princ HTTP/datagrid@INFINISPAN.ORG -pass * -mapuser INFINISPAN\USER_NAME
    $ ktab -k http.keytab -a HTTP/datagrid@INFINISPAN.ORG
  2. 将 keytab 文件复制到 $ISPN_HOME/server/conf 目录中。
  3. 向 Data Grid 服务器安全域添加服务器身份 定义。
  4. 指定为 Hot Rod 和 REST 连接器提供服务主体的 keytab 文件的位置。
  5. 将 Kerberos 服务主体命名为。

4.2.2.1. Kerberos 身份配置

以下示例为 Data Grid 服务器配置 Kerberos 身份:

<security xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="urn:infinispan:server:11.0 https://infinispan.org/schemas/infinispan-server-11.0.xsd"
          xmlns="urn:infinispan:server:11.0">
   <security-realms>
      <security-realm name="default">
         <server-identities> 1
            <kerberos keytab-path="hotrod.keytab" 2
                      principal="hotrod/datagrid@INFINISPAN.ORG" 3
                      required="true"/> 4
            <kerberos keytab-path="http.keytab" 5
                      principal="HTTP/localhost@INFINISPAN.ORG" 6
                      required="true"/>
         </server-identities>
      </security-realm>
   </security-realms>
</security>
1
定义 Data Grid 服务器的身份。
2
指定为 Hot Rod 连接器提供 Kerberos 身份的 keytab 文件。
3
为 Hot Rod 连接器命名 Kerberos 服务主体。
4
指定 Data Grid 服务器启动时必须存在 keytab 文件。
5
指定为 REST 连接器提供 Kerberos 身份的 keytab 文件。
6
为 REST 连接器命名 Kerberos 服务主体。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.