client/server https 交换密钥错误

client/server https exchange key error

我想用HTTP/HTTPS封装进行Client/Server通信。

HTTPS模式只是用来加密数据,不需要认证

对于 HTTPS 连接,我在服务器端创建并安装了证书。

此外,我用 HttpServerApi lib 开发了我的服务器,用 WinHttp 开发了我的客户端 (Windows)。所以客户端开始请求服务器,有一个密钥交换但结果是:加密警报(21)解密失败:

> 192.168.3.138   192.168.1.6     TLSV1 ClientHello
> 192.168.1.6     192.168.3.138   Server Hello, Certificate, Server Hello Done 
> 192.168.3.138   192.168.1.6     TLSV1 ClientKeyExchange, Change Cipher Spec, Encrypted Handshake Message
> 192.168.1.6     192.168.3.138   TLSV1 Change Cipher Spec, Evrypted Handshake Message
> 192.168.3.138   192.168.1.6   TLSV1 Application Data, Application Data
> 192.168.3.138   192.168.1.6   TLSV1 Application Data, Application Data
> 192.168.3.138   192.168.1.6   TLSV1 Application Data
> 192.168.3.138   192.168.1.6   TLSV1 Encrypted Alert

这是 wireshark 的详细信息(服务器端),192.168.3.138 是我的客户端。

192.168.1.6 192.168.3.138 TLSV1 Change Cipher Spec, Evrypted Handshake Message中,我有: Header checksum: 0x0000 [不正确,应该是0x4ac1(可能是由"IP cheksum offload"引起的?)]

如何将我的服务器证书与端口 443 或我开发的 Http 服务器联系起来?

谢谢

好的,我找到了 "why Encrypted Alert"。我认为这只是因为我正在使用自动签名证书进行测试!!

我还有一个问题,关于 HttpServerApi,我如何 select 一个证书和其他证书?

感谢