4.2. 创建 Data Grid Server Identities
服务器身份在安全域中定义,并使数据网格服务器能够将其身份证明给客户端。
4.2.1. 设置 SSL 标识
SSL 身份使用密钥存储,该密钥存储包含证书或证书链。
如果安全域包含 SSL 身份,Data Grid 服务器会自动为使用这些安全域的端点启用加密。
流程
为 Data Grid 服务器创建密钥存储。
重要数据网格服务器支持以下密钥存储格式:JKS、JCEKS、PKCS12、BKS、BCFKS 和 UBER。
在生产环境中,服务器证书应由可信证书颁发机构(包括 Root 或 Intermediate CA)签名。
-
将密钥存储添加到
$ISPN_HOME/server/conf
目录中。 -
向 Data
Grid 服务器安全域添加服务器身份
定义。 - 指定密钥存储的名称以及密码和别名。
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>
4.2.1.2. 自动生成密钥存储
配置 Data Grid 服务器,以在启动时自动生成密钥存储。
自动生成的密钥存储:
- 不应该在生产环境中使用。
- 在需要时生成;例如,从客户端获取第一个连接时。
- 包含您可以在 Hot Rod 客户端中使用的证书。
流程
-
在服务器配置中包含
keystore
元素的generate-self-signed-certificate-host
属性。 - 为服务器证书指定主机名作为值。
带有生成的密钥存储的 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。
流程
-
将
engine
元素添加到您的 Data Grid 服务器 SSL 身份。 -
使用
enabled-protocols
和enabled-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>
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 服务。
流程
为 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
-
将 keytab 文件复制到
$ISPN_HOME/server/conf
目录中。 -
向 Data
Grid 服务器安全域添加服务器身份
定义。 - 指定为 Hot Rod 和 REST 连接器提供服务主体的 keytab 文件的位置。
- 将 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>