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

时间:2017-08-02 21:37:49

标签: java ssl tls1.2 keytool

在我回答主要问题之前,我想表明我对Keystore和TrustStores的理解:

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

2)Truststore - 我信任的来自不同域的root / interm 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为我生成自签名证书测试

1 个答案:

答案 0 :(得分:1)

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