在讨论主要问题之前,我想表达一下我对Keystore和TrustStores的理解:

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

2)信任库-我信任的来自不同域的根/中间CA和其他已签名证书的列表。

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

通过这种方式:

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

2)当'myserver1'是服务器并且myserver2是客户端时,上述情况也将成立-除非现在将myserver1公钥证书导入到myserver2信任库中。

我真的在这里整理东西吗?还是我犯了任何根本性的错误?我的目的是尝试使用自签名证书,然后为我的服务器获取正确的根CA签名证书。但是,如果有人可以解释我在这里做任何错误的假设,我将不胜感激。

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

最佳答案

您拥有正确的权限,但如果使用CA签名的证书,则不需要导入步骤。根据定义,CA已经是受信任的,因此它们所签名的证书也是如此。因此,您的测试毫无意义。

10-01 00:11