我正在尝试运行 openSSL 示例(从此处下载的源代码)。我已经设法构建它并在端口 4433 上运行“wserver”示例(使用 VirtualBox 在 Ubuntu 12.10 虚拟机上运行)
然后我尝试从 Windows 8 启动客户端,但我一直SSL accept error
在服务器终端上显示节目。
我看到了这篇文章并从接受的答案中复制了 bash 脚本,使用它,我设法创建了一个新的 root.pem 和其他证书,但我仍然遇到同样的错误
(不知道是否重要,我正在使用端口 4433,因为 VM 由于某种原因无法绑定到 443,是的,我也在客户端上更改了它)
此外,服务器是用 C 编写的。
有任何想法吗?谢谢!
编辑
我发现错误发生在这一行
r=SSL_accept(ssl);
我检查了返回到 r 的错误使用
SSL_get_error(ssl,r);
它似乎是SSL_ERROR_SYSCALL
我检查了一下ERR_get_error();
,它返回了0
意义
如果 ret == 0,则观察到违反协议的 EOF
还不知道是什么意思。。
编辑 2
我检查了客户端返回代码,12045
根据 MSDN,这是错误的
ERROR_INTERNET_INVALID_CA
12045
该功能不熟悉生成服务器证书的证书颁发机构。
但是当使用虚拟机提供的客户端时,连接很好,没有证书问题
Microsoft here12045
所示的覆盖会导致错误,即12038
ERROR_INTERNET_SEC_CERT_CN_INVALID
SSL certificate common name (host name field) is incorrect. For example, if you entered www.server.com and the common name on the certificate says www.different.com.
这有帮助吗?再次感谢!