成功进行SSL通信的要求

时间:2012-10-15 03:56:13

标签: c++ ssl client-server thrift

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

服务器端(java):

  1. 将客户端的公钥证书导出到服务器的信任库
  2. Cleint Side(C ++):

    1. 加载从服务器密钥库
    2. 导出的服务器公共证书
    3. 单独加载客户端的公钥和私钥(这是因为我不能直接使用java密钥库,因为客户端是用c ++编写的)
    4. 所有使用的证书都是自签名的。

      到目前为止,我一直没有成功,并且连续出现以下错误:

      SSL_connect: certificate verify failed
      

      我有两个问题:

      1. 我用于SSL通信的方法是否正确?如果没有,那么正确的是什么?
      2. 出现此错误的任何可能原因?
      3. 谢谢。

1 个答案:

答案 0 :(得分:0)

检查您是否可以直接验证密钥调用:openssl s_client -connect serverIP:Port。 如果你可以解决你的代码问题,那么我们需要更多关于它的细节。 如果不是......你没有使用证书。服务器正在向您发送,或证书出现问题。