我使用 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.pem
和dh512.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 问题。