【发布时间】:2013-02-27 05:31:17
【问题描述】:
使用 Java 创建 SSL 连接时,我们首先使用 KeyStores 和 TrustStores 初始化 SSLContext。 javax.net.ssl 中的 SSLContext 有一个名为 createSSLEngine() 的方法来创建 SSLEngine。因此,在为连接创建会话时,将使用创建的 SSLEngine。我的问题是在 SSL 协议的哪个点使用来自 KeyStores 和 TrustStores 的 keyManagers 和 TrustManagers?
提前致谢。
【问题讨论】:
-
这一切都在JSSE Reference Guide 中描述得很清楚。你在哪方面有问题?
-
我想知道SSLEngine中是否实现了Trust stores的使用?如果有怎么办?我问这个问题是因为当我从客户端获取证书链时,链中的根证书必须在 Truststore 中才能建立 SSL 连接。我不确定这是否在 Java 的 SSL 实现中实现。
-
是的。 SSLEngine 执行 SSL 握手,通过 TrustManager 验证对等证书,并使包含对等证书的 SSLSession 对应用程序可用。这就是 SSLEngine 是从 SSLContext 创建的原因,它具有 KeyManagers 和 TrustManagers。
标签: security ssl keystore truststore sslengine