成功SSL通信的要求

Requirements for Successful SSL Communication

本文关键字:通信 SSL 成功      更新时间:2023-10-16

我正在使用节俭来编写一个C++客户端,该客户端将安全地调用用java编写的服务器(不是我编写的)(使用相同的节俭文件为服务器和客户端生成的代码)。我是SSL通信的新手。对于java服务器端,我将客户端的公钥证书导入到服务器信任库(server-truststore.jks)中,以验证客户端的真实性。我从服务器端密钥库(server.jks)导出了公共证书,并在SSL握手期间在客户端使用它来验证服务器密钥证书。如果我列出我为SSL通信做了什么:

服务器端(java):

  1. 将客户端的公钥证书导出到服务器的信任库

Clint Side(C++):

  1. 加载了从服务器的密钥库导出的服务器的公共证书
  2. 分别加载了客户端的公钥和私钥(这是因为我不能直接使用java密钥存储,因为客户端是用c++编写的)

使用的所有证书都是自签名的。

到目前为止,我一直没有成功,并不断得到以下错误:

SSL_connect: certificate verify failed

我有两个问题:

  1. 我用于SSL通信的方法正确吗?如果没有,正确的是什么
  2. 这个错误有什么可能的原因吗

谢谢。

检查是否可以验证直接调用的密钥:openssl s_client-connect serverIP:Port。如果可以的话,这是代码的问题,为此我们需要更多的细节。如果不是。。。您没有使用证书。服务器正在向您发送证书,或者证书有问题。