1

我使用 OpenSSL 与我的本地 HTTPS 服务器建立安全连接。服务器非常简单,因为我基本上使用了Boost Asio 示例,但只改进了一点。

该解决方案适用于使用 OpenSSL-Win32 的 Win7 64b 和此处下载的安装程序随附的证书。

我已将解决方案移植到 Android 上。Android OpenSSL 端口来自这里

在调用 use_tmp_dh_file 方法之前一切正常:

_context.use_tmp_dh_file("/sdcard/Download/PEM/dh512.pem");

它总是以Fatal signal 11 (SIGSEGV) at 0x00000014 (code=1)错误结束。

我使用证书server.pemdh512.pem来自 Android OpenSSL 端口的 /apps 文件夹。

有人知道出了什么问题吗?

编辑:

使用 dh 文件不是强制性的,没有它也可以工作,但我只是更进一步,因为现在开始握手时它会失败:

boost::system::error_code error;
socket.handshake(boost::asio::ssl::stream_base::server, error);

socket实例在哪里:

typedef boost::asio::ssl::stream<boost::asio::ip::tcp::socket> sslSocket;

它最终会出现与上述相同的错误。这似乎是一个 Android OpenSSL-Boost ASIO 问题。

4

1 回答 1

1

这个特定问题的答案简短而简单,但很难找到。实现我的 HTTPS 服务器的本机库也干扰了使用 OpenSSL 的其他本机库。

于 2013-04-01T21:23:42.603 回答