Android上的本地HTTPS服务器 - 使用dh文件

时间:2013-03-31 20:17:54

标签: android linux https openssl boost-asio

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

该解决方案适用于使用OpenSSL-Win32的Win7 64b以及安装程序下载的here附带的证书。

我已经在Android上移植了解决方案。 Android OpenSSL端口来自here

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

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

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

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

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

修改

使用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问题。

1 个答案:

答案 0 :(得分:1)

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