使用openssl+curl让嵌入式设备实现https通讯

1、安装openssl

编译openssl库

  1. 下载openssl库,这里笔者下载的版本是openssl-1.1.1k.tar.gz。
  2. 运行tar -vxzf openssl-1.1.1k.tar.gz解压压缩包,进入openssl-1.1.1k文件夹。
    在这里插入图片描述
  3. 运行 setarch i386 ./config no-asm shared --prefix=/home/lyy/work/openssl/arm-openssl --cross-compile-prefix=arm-linux-gnueabihf- 命令配置openssl并生成Makefile,具体配置参数含义如下:
    setarch i386:配置架构为i386,默认是x86
    no-asm:不使用汇编
    shared:编译动态链接库
    –prefix:指定编译安装路径
    –cross-compile-prefix:指定交叉编译工具
    在这里插入图片描述
  4. 修改Makefile。Makefile中使用" -m32",如果不去掉的话在后面的编译过程中将产生错误,所以需要找到" -m32"将其删除。
    在这里插入图片描述
  5. 运行make 编译openssl,没有问题后继续运行make install 安装openssl。执行结束后,没有问题的话可以在之前配置指定的路径中找到生成的文件。
    在这里插入图片描述

测试openssl

  1. 将编译出来的文件复制到开发板上,导出动态链接库路径 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/customer/arm-openssl/lib 。
    在这里插入图片描述
  2. 测试openssl是否能够正常运行。
    在这里插入图片描述

2、安装curl

编译curl库

  1. 下载curl库,这里笔者下载的版本是curl-7.76.1.tar.gz。

  2. 运行tar -vxzf curl-7.76.1.tar.gz解压压缩包,进入curl-7.76.1文件夹。
    在这里插入图片描述

  3. 配置curl编译选项
    如果交叉编译工具下已经有openssl加密库,编译curl可能会优先使用交叉编译工具下的openssl加密库。这种情况下如果想链接自己编译的openssl库,最要显示的export出自己编译的openssl库的include和lib路径,如:
    export CPPFLAGS=“-I<path_to_openssl>/include”
    export LDFLAGS=“-L<path_to_openssl>/lib”

    运行 ./configure --prefix=/home/lyy/work/curl/libcurl --host=arm-none-linux CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --with-ssl=/home/lyy/work/openssl/arm-openssl 命令配置openssl并生成Makefile,具体配置参数含义如下:
    –prefix:指定编译安装路径
    –host:指定主机
    CC:指定c语言编译工具
    CXX:指定c++编译工具
    –with-ssl:加入ssl,并指定ssl工具的路径
    在这里插入图片描述
    可以在最后结果看到curl已经配置加入ssl,并支持https协议了。
    在这里插入图片描述

  4. 运行make 编译curl,没有问题后继续运行make install 安装curl。执行结束后,没有问题的话可以在之前配置指定的路径中找到生成的文件。
    在这里插入图片描述

测试curl

  1. 将编译出来的文件复制到开发板上,导出动态链接库路径 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/customer/arm-openssl/lib::/customer/libcurl/lib。
    在这里插入图片描述
  2. 查看curl版本,确定已经支持https协议。
    在这里插入图片描述
  3. 测试curl是否能够正常运行。
    在这里插入图片描述
    至此,开发板已经能使用curl通过https连接到百度服务器了。
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Android 4.4设备上可以安装并运行Android应用程序。对于要在4.4设备使用opensslcurl的应用程序,需要在构建应用程序时进行相应配置。 首先,需要在应用程序的build.gradle文件中添加依赖项,以引入opensslcurl库。这可以通过在dependencies部分添加以下行来实现: ``` implementation 'org.openssl:openssl-android:1.1.1' implementation 'com.squareup.okhttp3:okhttp:3.12.12' ``` 接下来,需要在AndroidManifest.xml文件中声明必要的权限,以允许应用程序进行网络通信。这可以通过在manifest标签内添加以下行来实现: ``` <uses-permission android:name="android.permission.INTERNET" /> ``` 然后,在应用程序的代码中,可以使用opensslcurl的API来进行相应的操作,如HTTPS请求等。比如,使用curl库发送一个GET请求可以按照以下方式实现: ``` OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.example.com/data") .build(); try { Response response = client.newCall(request).execute(); String responseData = response.body().string(); Log.d(TAG, "Response: " + responseData); } catch (IOException e) { e.printStackTrace(); } ``` 注意,以上代码是一个简单示例,实际使用中可能需要处理异常、设置适当的超时时间等。 最后,在4.4设备上运行应用程序时,确保设备已经连接到互联网并具有访问相关服务器的权限。 总之,通过适当的配置和使用opensslcurl库的API,开发人员可以在Android 4.4设备上构建并运行支持相关操作的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值