第 5 章 加密数据网格服务器连接
您可以通过配置包含 Data Grid 的公钥和私钥的密钥存储来保护使用 SSL/TLS 加密的数据网格服务器连接。如果需要 mutual TLS,您还可以配置客户端证书身份验证。
5.1. 配置 Data Grid Server Keystores
将密钥存储添加到 Data Grid Server,并将其配置为显示验证其对客户端身份的 SSL/TLS 证书。如果安全域包含 TLS/SSL 身份,它会加密到使用该安全域的 Data Grid Server 端点的任何连接。
前提条件
- 为 Data Grid 服务器创建包含证书或证书链的密钥存储。
数据网格服务器支持以下密钥存储格式:JKS、JCEKS、PKCS12、BKS、BCFKS 和 UBER。
在生产环境中,服务器证书应由可信证书颁发机构(包括 Root 或 Intermediate CA)签名。
流程
-
将包含 Data Grid 服务器的 SSL/TLS 身份的密钥存储添加到
$RHDG_HOME/server/conf
目录。 -
向 Data Grid Server 安全域添加
服务器身份
定义。 -
使用
path
属性指定密钥存储文件名。 -
为密钥存储密码和证书别名提供
keystore-password
和alias
属性。
Data Grid Server keystore 配置
<security xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:infinispan:server:12.1 https://infinispan.org/schemas/infinispan-server-12.1.xsd" xmlns="urn:infinispan:server:12.1"> <security-realms> <security-realm name="default"> <server-identities> <ssl> <!-- Adds a keystore that contains server certificates that provide SSL/TLS identities to clients. --> <keystore path="server.pfx" relative-to="infinispan.server.config.path" keystore-password="secret" alias="rhdg-server"/> </ssl> </server-identities> </security-realm> </security-realms> </security>
后续步骤
使用信任存储配置客户端,以便它们能够验证 Data Grid 服务器的 SSL/TLS 身份。
其他资源
5.1.1. 自动生成密钥存储
配置 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:12.1 https://infinispan.org/schemas/infinispan-server-12.1.xsd" xmlns="urn:infinispan:server:12.1"> <security-realms> <security-realm name="default"> <server-identities> <ssl> <!-- Generates a keystore that includes a self-signed certificate with the specified hostname. --> <keystore path="server.p12" relative-to="infinispan.server.config.path" keystore-password="secret" alias="server" generate-self-signed-certificate-host="localhost"/> </ssl> </server-identities> </security-realm> </security-realms> </security>
5.1.2. 配置 TLS 版本和密码套件
当使用 SSL/TLS 加密来保护部署时,您可以将 Data Grid 服务器配置为使用 TLS 协议的特定版本以及协议中的特定密码套件。
流程
-
将
engine
元素添加到 Data Grid 服务器的 SSL 配置中。 将 Data Grid 配置为使用带有
enabled-protocols
属性的一个或多个 TLS 版本。默认情况下,Data Grid 服务器支持 TLS 版本 1.2 和 1.3。如果适当,您可以设置
TLSv1.3
,以限制客户端连接的安全协议。Data Grid 不推荐启用TLSv1.1
,因为它是一个有限的旧协议,并提供弱安全性。您不应该启用任何早于 1.1 的 TLS 版本。警告如果您修改了 Data Grid 服务器的 SSL
引擎
配置,则必须使用enabled-protocols
属性明确配置 TLS 版本。省略enabled-protocols
属性允许任何 TLS 版本。<engine enabled-protocols="TLSv1.3 TLSv1.2" />
将 Data Grid 配置为使用带有
enabled-ciphersuites
属性的一个或多个密码套件。您必须确保设置了支持您要使用的任何协议功能的密码套件;例如
HTTP/2 ALPN
。
SSL 引擎配置
<security xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:infinispan:server:12.1 https://infinispan.org/schemas/infinispan-server-12.1.xsd" xmlns="urn:infinispan:server:12.1"> <security-realms> <security-realm name="default"> <server-identities> <ssl> <keystore path="server.p12" relative-to="infinispan.server.config.path" keystore-password="secret" alias="server"/> <!-- Configures Data Grid Server to use specific TLS versions and cipher suites. --> <engine enabled-protocols="TLSv1.3" enabled-ciphersuites="TLS_AES_256_GCM_SHA384 TLS_AES_128_GCM_SHA256 TLS_AES_128_CCM_8_SHA256"/> </ssl> </server-identities> </security-realm> </security-realms> </security>