【问题标题】:How is SSLSocket created?SSLSocket 是如何创建的?
【发布时间】:2010-07-19 23:48:30
【问题描述】:

在 JSSE 文档中,它只是说 SSLSocketFactory 可以通过调用 createSocket 来创建 sslsocket。但它没有描述如何调用 ssl 握手、如何传入密钥材料以及如何以及选择哪种凭据来验证服务器或客户端。

有人知道创建sslsocket的详细过程吗?

谢谢

【问题讨论】:

    标签: java ssl


    【解决方案1】:

    JSSE 所做的只是实现它在 RFC 2246 中所说的内容。无需在 Javadoc 中重复所有内容。

    【讨论】:

    • 在相互认证中,如果你的客户端有多个证书,选择哪一个?
    • 与服务器发送的可信 CA 匹配的证书。这也在 RFC 中。
    • 证书请求有两个certificate_types和certificate_authorities列表,哪一个优先级更高?例如,如果证书请求类似于: { certificate_types = (rsa_sign, dss_sign) certificate_authorities = ("verisign", "Cyber​​Trust") } 但是,客户端有两个证书,例如: certificate1 = (rsa_sign, "Cyber​​Trust") ; certificate2 = (dss_sign, "verisign") 客户应该拿哪一个?谢谢!
    • 所选择的证书必须同时符合两者。可能是第一个确定选择 dowse so 的,但我不知道有任何规范说明它。
    【解决方案2】:

    【讨论】:

    • 是的,这是一个很好的文档。但是您知道如何选择证书来验证您的身份吗?比如,在相互认证的场景中,服务器需要客户端的证书,但是在客户端的 KeyStore 中,可能有多个 key-certificates,选择哪一个?
    【解决方案3】:

    Diffie-Hellman 等算法可用于在不安全网络中的两方之间建立安全通信。

    http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-02
      • 2012-11-09
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 2014-12-06
      • 1970-01-01
      • 2015-07-02
      相关资源
      最近更新 更多