1.4. 配置加密
Data Grid Server 可以强制不同类型的 SSL/TLS 加密来保护 Hot Rod JS 客户端连接。
先决条件
- 创建 Hot Rod JS 客户端可用于验证数据网格服务器身份的信任存储。
- 如果您将 Data Grid Server 配置为验证或验证客户端证书,请根据情况创建密钥存储。
流程
- 打开 Hot Rod JS 客户端配置以进行编辑。
-
添加设置
enabled: true标志的ssl方法。 - 提供特定于您使用的加密类型的任何其他配置。
1.4.1. 加密类型 复制链接链接已复制到粘贴板!
热 Rod JS 客户端可以使用不同类型的加密来与 Data Grid 服务器协商安全连接。
Data Grid Server 身份
对于基本加密,您可以在配置中为 Data Grid 服务器证书添加签名证书或 CA 捆绑包,如下所示:
要验证向 Data Grid Server 发布的证书,Hot Rod JS 客户端需要完整的证书链或以 Root CA 开头的部分链。
var connected = infinispan.client({port: 11222, host: '127.0.0.1'},
{
ssl: {
enabled: true,
trustCerts: ['my-root-ca.crt.pem']
}
}
);
信任存储
您可以以 PKCS12 或 PFX 格式添加信任存储,如下所示:
var connected = infinispan.client({port: 11222, host: '127.0.0.1'},
{
ssl: {
enabled: true,
cryptoStore: {
path: 'my-truststore.p12',
passphrase: 'secret'
}
}
}
);
客户端证书身份验证
如果在 Data Grid Server 配置中启用客户端证书身份验证,请添加密钥存储,如下例所示:
在使用客户端证书身份验证时,您必须使用 EXTERNAL 身份验证机制配置 Hot Rod JS 客户端。
var connected = infinispan.client({port: 11222, host: '127.0.0.1'},
{
ssl: {
enabled: true,
trustCerts: ['my-root-ca.crt.pem'],
clientAuth: {
key: 'privkey.pem',
passphrase: 'secret',
cert:ssl 'cert.pem'
}
}
}
);
Server Name Indication (SNI)
如果您使用 SNI 来允许 Hot Rod JS 客户端请求数据网格服务器主机名,请为与 Data Grid Server 配置中的主机名匹配的 sniHostName 参数设置一个值。
sniHostName 参数默认为 localhost。
var connected = infinispan.client({port: 11222, host: '127.0.0.1'},
{
ssl: {
enabled: true,
trustCerts: ['my-root-ca.crt.pem']
sniHostName: 'example.com'
}
}
);
默认情况下,热 Rod JS 客户端不允许自签名证书,这可能会导致开发或测试环境中没有公共证书颁发机构(CA)密钥的问题。
有关使用 Java keytool 创建签名证书的示例,请查看 Data Grid 代码教程。