java - 服务器及其 keystore Trustores 之间的 TLS 身份验证

标签 java ssl tls1.2 keytool

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

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

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

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

这样:

1) myserver1 需要信任 myserver2 所以 myserver2 公钥证书应该导入到 `myserver1' 的信任库中。

2) 当“myserver1”是服务器并且 myserver2 是客户端时,上述情况也适用 - 除了现在 myserver1 公钥证书应该导入到 myserver2 信任库。

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

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

最佳答案

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

关于java - 服务器及其 keystore Trustores 之间的 TLS 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45471410/

相关文章:

java - java获取字符串中元素个数的方法

java - 查找我的浮点值 ArrayList 的最小值

ruby-on-rails - 安装 eventmachine (1.0.3) 时出错

android - 从 Android 到自定义套接字服务器的 SSL/TLS 连接

java - equals 方法在 Java 中是如何工作的

java - 创建实体时添加静态属性数据

c# - c# 中 grpc 的 SSL/TSL 支持

ssl - 我可以为多个kafka生产者/消费者使用相同的 keystore 吗

ssl - TLS 1.2 会比 1.0 产生更多的 CPU 成本吗?

java - 如何使用 HttpComponents (Java apache lib) 发出请求,更改 TLS 握手中的服务器名称指示