在讨论主要问题之前,我想表达一下我对Keystore和TrustStores的理解:
1)密钥库-密钥(私钥)的详细信息,我将使用该密钥进行服务器身份验证
2)信任库-我信任的来自不同域的根/中间CA和其他已签名证书的列表。
我正在尝试建立服务器间的身份验证和数据交换机制。我所有的服务器的FQDN格式为myserverX.mydomain.net
,其中X是索引,例如myserver1.mydomain.net
。如果我对密钥库和信任库的理解是正确的,则当myserver1
向myserver2
请求数据时,myserver1
是客户端,而myserver2
是服务器。
通过这种方式:
1)myserver1
需要信任myserver2
,因此应将myserver2
公钥证书导入到“ myserver1”中的信任库中。
2)当'myserver1'是服务器并且myserver2
是客户端时,上述情况也将成立-除非现在将myserver1
公钥证书导入到myserver2
信任库中。
我真的在这里整理东西吗?还是我犯了任何根本性的错误?我的目的是尝试使用自签名证书,然后为我的服务器获取正确的根CA签名证书。但是,如果有人可以解释我在这里做任何错误的假设,我将不胜感激。
注意-我将使用Java keytool和JKS型密钥库(具有默认的对称密钥算法和大小),并且将使用-certreq and -gencert
或-selfcert
生成用于测试的自签名证书。
最佳答案
您拥有正确的权限,但如果使用CA签名的证书,则不需要导入步骤。根据定义,CA已经是受信任的,因此它们所签名的证书也是如此。因此,您的测试毫无意义。