服务器及其密钥库 Trustores 之间的 TLS 身份验证

TLS Authentication between Servers and their Keystores Trustores

在进入主要问题之前,我想说明一下我对 Keystore 和 TrustStores 的理解:

1) Keystore - 密钥(私钥)的详细信息,我将使用它作为服务器进行身份验证

2) Truststore - 我信任的 root/interm 个来自不同域的 CA 和其他签名证书的列表。

我正在尝试建立服务器间的身份验证和数据交换机制。我所有的服务器都有 FQDN 格式为 myserverX.mydomain.net,其中 X 是索引,例如myserver1.mydomain.net。如果我对密钥库和信任库的理解是正确的,那么当 myserver1myserver2 请求数据时,myserver1 是客户端,myserver2 是服务器。

这样:

1) myserver1 需要信任 myserver2 因此 myserver2 public 密钥证书应导入到“myserver1”中的信任库中。

2) 当 'myserver1' 是服务器并且 myserver2 是客户端时,以上内容也适用 - 除了现在 myserver1 public 密钥证书应该导入到 myserver2 信任库。

我真的把事情弄对了吗?还是我犯了任何根本性错误?我的目的是尝试使用自签名证书,然后为我的服务器获取适当的根 CA 签名证书。但是,如果有人可以解释我在这里是否做出了任何错误的假设,我将不胜感激。

注意 - 我将使用 Java keytool 和 JKS 类型的密钥库(具有默认的对称密钥算法和大小)并且我将使用 -certreq and -gencert-selfcert 来生成用于我的测试的自签名证书。

你说得对,但如果你使用 CA 签名的证书,则不需要导入步骤。根据定义,CA 已经是可信的,因此它们签署的证书也是如此。所以你的测试毫无意义。