成功SSL通信的要求
Requirements for Successful SSL Communication
我正在使用节俭来编写一个C++客户端,该客户端将安全地调用用java编写的服务器(不是我编写的)(使用相同的节俭文件为服务器和客户端生成的代码)。我是SSL通信的新手。对于java服务器端,我将客户端的公钥证书导入到服务器信任库(server-truststore.jks)中,以验证客户端的真实性。我从服务器端密钥库(server.jks)导出了公共证书,并在SSL握手期间在客户端使用它来验证服务器密钥证书。如果我列出我为SSL通信做了什么:
服务器端(java):
- 将客户端的公钥证书导出到服务器的信任库
Clint Side(C++):
- 加载了从服务器的密钥库导出的服务器的公共证书
- 分别加载了客户端的公钥和私钥(这是因为我不能直接使用java密钥存储,因为客户端是用c++编写的)
使用的所有证书都是自签名的。
到目前为止,我一直没有成功,并不断得到以下错误:
SSL_connect: certificate verify failed
我有两个问题:
- 我用于SSL通信的方法正确吗?如果没有,正确的是什么
- 这个错误有什么可能的原因吗
谢谢。
检查是否可以验证直接调用的密钥:openssl s_client-connect serverIP:Port。如果可以的话,这是代码的问题,为此我们需要更多的细节。如果不是。。。您没有使用证书。服务器正在向您发送证书,或者证书有问题。
相关文章:
- SSL上的`curl_easy_send`和`curl_asy_recv`:如何处理`CURLE_AGAIN`
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 是否可以使用winusb同时与多个相同的usb设备进行通信
- 混淆了如何使用IDL与Ethovision进行通信
- C++ Boost::asio串行通信与Arduino无法写入
- 我是否需要包含隐式使用/与 WindowsAPI 通信"Windows.h"?
- 通过TCP的PvP通信问题
- C++一个线程如何正确通信其任务已完成?
- 如何将 Firebase 与基于 Linux 的客户端应用配合使用,以便与服务器进行双向消息通信
- 使用 OpenSSL 从内存中读取原始 SSL/TLS 证书
- Mongocxx无法使用SSL连接到mongoDB
- 删除功能不适用于串行通信后多个循环中的多个实例
- 网站和C++程序在同一台 Linux PC 上的通信
- 通过插槽和信号在不同线程中的两个qt对象之间进行通信
- 使用 pybind11 共享 MPI 通信器
- 进程间通信堆内存
- C++ TCP 套接字通信 - 连接按预期工作,几秒钟后失败,没有收到新数据,read() 和 recv() 块
- C++ 两台不同机器之间通过wifi进行套接字通信
- 成功SSL通信的要求
- 使用 C/C++、SSL 协议的客户端和服务器通信不起作用