Spring Boot SSL Client-Server Communication



我对Spring Boot和SSL相当陌生。我开发了一个SSL rest web服务器,服务器密钥库私钥服务器CA并正确地处理相互的X.509证书身份验证。我已经测试过了,HTTPS请求与邮差和Python客户端以及一切正常工作,服务器和客户端都成功地交换和验证了彼此的证书。

但是我的情况有点不同,

我已经创建并连接了一个Postgresql数据库到我的春季启动应用程序,我已经创建了具有特定ID号和REST端点的表实体,您可以创建,获取实体等。

所以我的场景如下;

  1. Python客户端带有特定的ID号并发出请求到一个所有人都可以使用的REST端点(由服务器允许)。
  2. Spring Boot Server检查数据库中的ID号并创建一个客户端证书给Python客户端(我现在卡住了),并将此证书发送给客户端。
  3. 发送客户端证书后,客户端可以使用它并使用证书与服务器通信

问题在后面;

是否可以在java运行时创建客户端证书?如果是,我如何创建它并发送回客户端?

感谢您的宝贵时间和回复。

我已经找到解决办法了。如果有人需要类似的解决方案,您可以执行以下步骤;

  1. 在spring引导中创建公共端点,您可以使用给定的id号
  2. 与您的数据库进行比较,如果它id号存在,调用。sh文件(使用process)
  3. 在这个。sh文件中,使用openssl命令生成一个密钥,从密钥中删除密码短语(如果使用了它),创建一个客户端证书请求,并最终对证书进行签名。
  4. 最后将签名的证书和私钥发送回客户端。

毕竟,您的客户端可以使用带有私钥的签名证书并使用您的安全端点。

最新更新