当前位置: 首页 > 知识库问答 >
问题:

spring boot SSL客户端-服务器通信

程皓轩
2023-03-14

我对spring boot和SSL还很陌生。我已经开发了一个SSL rest web服务器,它具有服务器密钥存储库、私钥和服务器CA,并且能够正确地处理相互X.509证书身份验证。我已经测试过,它可以与Postman和Python客户机一起工作HTTPS请求,并且所有工作都正常,服务器和客户机都可以成功地交换和验证对方的证书。

但我的情况有点不同,

我已经创建并连接了一个Postgresql数据库到我的spring boot应用程序,我已经创建了具有特定ID号的表实体,还创建了您可以创建、获取实体等的RESTendpoint。

所以我的情况是这样的;

  1. Python客户端提供了特定的ID号,并向每个人都可用的RESTendpoint发出请求(服务器允许)。
  2. spring boot服务器检查数据库中的ID号,并创建Python客户机的客户机证书(我现在正在堆放它)并将此证书发送给客户端。
  3. 发送客户端证书后,客户端即可使用该证书并与服务器通信

所以问题随之而来;

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

感谢您的时间和答复。

共有1个答案

慕阳平
2023-03-14

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

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

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

 类似资料:
  • 我想在一些计算机之间建立点对点连接,这样用户就可以在没有外部服务器的情况下聊天和交换文件。我最初的想法如下: 我在服务器上制作了一个中央服务器插座,所有应用程序都可以连接到该插座。此ServerSocket跟踪已连接的套接字(客户端),并将新连接的客户端的IP和端口提供给所有其他客户端。每个客户端都会创建一个新的ServerSocket,所有客户端都可以连接到它。 换句话说:每个客户端都有一个Se

  • 现在我的ServerSocket是这样的 一切正常,客户端连接,发送一些数据,服务器读取它,但我的问题是如何从我的服务器发送消息到所有的客户端?我目前保存客户端上的ArrayList,所以我可以只是循环,ArrayList打开一个作家和刷新它,但我想发送的数据,我得到我的ClientConnection类 我应该如何处理这个代码?在服务器类上完成的所有操作?或

  • 我对套接字有点陌生,我正在尝试编写一个程序,在这个程序中,我基本上可以从客户端程序向服务器程序发送一些简单的请求。现在我只想在客户端有1或2个选项供用户选择。例如,如果用户在客户端选择“选项1”,那么服务器会返回一条消息“您选择选项1”,以此类推,但我不知道如何读取服务器上从客户端发送的输入。 客户代码: 服务器代码: 我需要在Clinet中使用两个不同的BufferedReader吗?一个用于用

  • 我试图了解服务器-客户端网络如何为实时多人游戏工作。 假设我正在构建一个实时多人游戏,比如FPS。 如果玩家A向玩家B开枪,后端< code >服务器需要告诉玩家B他们被击中了。 我知道如何让玩家 A 告诉后端服务器他开了一枪,只是向服务器发送请求,但是如何让后端告诉玩家 他们被枪杀了? 玩家B是否必须每0.1秒检查一次后端以查看是否发生了什么事情,或者是否有更有效的方法?

  • 问题内容: 我正在构建一个小型聊天应用程序,其中客户端A希望通过服务器B将某些东西发送到客户端C。首先,这是解决问题的正确方法吗?我能够向服务器发送数据或从服务器接收数据,但仅限于客户端。例如,如果客户端A向服务器B发送数据而客户端C向服务器B发送数据,则我可以将数据发送回服务器A和C就像回显服务器一样。但是我想要的是将来自客户端A的数据通过服务器B转发到客户端C。 以下是服务器代码: 客户端代码

  • 我有两个AWS EC2实例。服务器和客户端节点JS应用程序。 在本地,我的代码运行良好。但是在AWS,客户端会在一段时间后(例如30秒)关闭,没有任何警告/异常(由于某种原因,它无法找到并连接到服务器) 两个AWS实例都在运行:Windows Server 2016 Base。 两个AWS实例都有自己的服务器“AWS安全组”。只是为了确保我没有阻止两个安全组当前允许的任何东西:“所有流量到任何IP