具有相同公钥的服务器和客户端SSL证书

时间:2018-06-11 12:50:21

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

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

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

我的问题是:

  1. 我假设在服务器端证书必须包含私钥和公钥,在客户端,证书必须只包含服务器的公钥。这是对的吗?
  2. 如果上述理解正确,我应该如何生成两个证书,一个用于使用公钥和私钥的服务器 而另一个只用于公钥的客户端。
  3. 有人可以给我一些指示吗?

1 个答案:

答案 0 :(得分:0)

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

证书在连接时发送给客户端;但客户需要信任它。要实现这一点,证书需要由受信任的机构签名,或者您需要在客户端明确信任该证书(后一种情况称为自签名证书)。

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

相关问题