【问题标题】:TLS Authentication between Servers and their Keystores Trustores服务器及其密钥库信任之间的 TLS 身份验证
【发布时间】:2017-08-03 07:21:40
【问题描述】:

在我进入主要问题之前,我想说明我对 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 密钥工具和 JKS 类型的密钥库(具有默认的对称密钥算法和大小),我将使用 -certreq and -gencert-selfcert 为我的测试生成自签名证书。

【问题讨论】:

    标签: java ssl tls1.2 keytool


    【解决方案1】:

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

    【讨论】:

    • “不需要导入步骤” - 你的意思是说不需要“CA 证书”导入,但我仍然需要导入我的自签名证书,对吗?
    • 我是认真的。这似乎非常清楚。你的问题没有意义。如果您使用的是 CA 签名证书,则您没有使用自签名证书。
    • 我想我很难理解的是当 TLS 握手发生时服务器发送的证书 - 这将是我的密钥库位置。如果这是由受信任的 CA 签名的,则浏览器将正常运行,否则会通知该站点不受信任。
    • 它将自签名或 CA 签名的证书从其 keystore 中发送出去。你的问题是关于信任库的,这就是我的回答。如果您使用自签名证书,则客户端必须信任它,这就是需要导入客户端信任库的原因。客户端信任库已经信任 CA。
    猜你喜欢
    • 1970-01-01
    • 2013-05-15
    • 2021-04-30
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 2016-12-11
    • 2011-09-09
    • 2017-01-29
    相关资源
    最近更新 更多