【问题标题】:Server and Client SSL certificates with the same public key具有相同公钥的服务器和客户端 SSL 证书
【发布时间】:2018-11-20 17:34:18
【问题描述】:

我想在基于 Java 的应用程序(客户端和服务器架构)中保护套接字通信。我想在 SSL 的帮助下实现这一点。

根据我的研究,我需要一个 SSL 证书(一对私钥和公钥)。我必须知道如何使用 Bouncy Castle 库生成证书。

我的问题是:

  1. 我的假设是,在服务器端,证书必须同时包含私钥和公钥,而在客户端,证书必须只包含服务器的公钥。这是正确的吗?
  2. 如果上述理解正确,我应该如何生成两个证书,一个用于服务器同时使用公钥和私钥 另一个只通过公钥供客户使用。

有人可以给我一些指导吗?

【问题讨论】:

    标签: java ssl bouncycastle public-key-encryption jce


    【解决方案1】:

    网上有几个资源很好地解释了公钥加密的工作原理。通常,您的服务器有两种资源:私钥和证书。公钥包含在证书中。通常私钥受密码保护,因此您的服务器也需要密码。

    证书在连接时发送给客户端;但客户需要信任它。为此,证书需要由受信任的权威机构签署,或者您需要在客户端显式信任该证书(后一种情况称为自签名证书)。

    Bouncy castle 是用于此类事物的库,但您可以使用任何东西来创建您的密钥对。最明显的一个是keytool,它来自哪个java。 read up on generating your keypair here.

    【讨论】:

      猜你喜欢
      • 2013-09-08
      • 2019-04-05
      • 1970-01-01
      • 2015-07-27
      • 2015-10-20
      • 2014-02-23
      • 1970-01-01
      • 2011-06-11
      • 2015-08-17
      相关资源
      最近更新 更多