wolfssl错误码-188

官方解析错误是 ASN sig error, no CA signer to verify certificate
即没有 CA 签名者来验证证书
WolfSSL客户端的默认策略是验证服务器,也就是如果不加载 CA 来验证服务器,将回返回连接错误,错误码为-188。

解决方法有两种:

1 强制不验证证书

在wolfSSL_new(ctx) 前加上下面这句
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);

2 提供CA证书

百度根证书

wolfSSL_CTX_load_verify_locations(ctx,"GlobalSign_root.cer", NULL)

测试代码:

/*** ******************************************************* Copyright (c) 2021—2021  lestly  All rights reserved.  * File Name          ssl.c* Author             lestly* Version            V1.0* date               2021/8/10*                    2021/8/11* Description        测试wolfssl https功能* ********************************************************/#include <stdio.h>
#include <wolfssl/wolfcrypt/settings.h>
#include <wolfssl/ssl.h>
#include <wolfssl/wolfcrypt/error-crypt.h>
#include <sys/socket.h>
#include <unistd.h>
#include <sys/types.h> int client(byte *request_get, const byte *ipAddr)
{int fd;int len;int ret;const int PORT = 443;struct sockaddr_in addr;memset(&addr,0,sizeof(addr));WOLFSSL *ssl = NULL;WOLFSSL_CTX* ctx = NULL;do{ wolfSSL_Init();//Use highest version possible fromif ((ctx = wolfSSL_CTX_new(wolfSSLv23_client_method())) == NULL) {printf( "wolfSSL_CTX_new error.\n");wolfSSL_CTX_free(ctx);return -1;}
/*//加载百度根目录证书if ((ret = wolfSSL_CTX_load_verify_locations(ctx,"GlobalSign_root.cer", NULL)) != SSL_SUCCESS) {printf( "Error loading GlobalSign_root.cer,"" please check the file. %d\n",ret);wolfSSL_CTX_free(ctx);return -1;}
*/      wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);if ((ssl = wolfSSL_new(ctx)) == NULL){printf("wolfssl new fail\n");break;} //****socket*******if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0){printf("fd < 0\n");break;}addr.sin_addr.s_addr = inet_addr(ipAddr); //baidu ipaddr.sin_family = AF_INET;addr.sin_port = htons(PORT);while(connect(fd,(struct sockaddr*)&addr,sizeof(addr)) != 0){printf("connect error \n");  }//****socket********if ((ret = wolfSSL_set_fd(ssl,fd)) != SSL_SUCCESS){printf("set fd fail\n");break;}if ((ret = wolfSSL_connect(ssl)) != SSL_SUCCESS){char buffer[80];int err = wolfSSL_get_error(ssl, ret);printf("error = %d, %s\n", err, wolfSSL_ERR_error_string(err, buffer));   break;}//wolfssl will connect before write/readlen = wolfSSL_write(ssl,(byte*)request_get,strlen(request_get));if(len < 0){printf("ssl write fail\n");break;}printf("%s",request_get);char ch[1024];while(wolfSSL_read(ssl, &ch, 1024) > 0){ printf("%s", ch);memset(ch, 0, 1024);}} while (0);close(fd); wolfSSL_shutdown(ssl);wolfSSL_free(ssl);wolfSSL_CTX_free(ctx);wolfSSL_Cleanup();}int main()
{#if defined(DEBUG_WOLFSSL)//      wolfSSL_Debugging_ON();#endifconst byte ipAddr[] = "14.215.177.39";  //百度ip,ping得出byte request_get[] = "GET https://www.baidu.com"" HTTP/1.1\r\n""Accept: */*\r\n""Accept-Language: zh-Hans-CN, zh-Hans; q=0.8, en-US; q=0.5, en; q=0.3\r\n""Connection: close\r\n""Host: www.baidu.com\r\n\r\n";client(request_get, ipAddr);return 0;
}

wolfSSL错误码-188相关推荐

  1. 阿里云短信发送回执错误码

    错误码归属 错误码 错误信息 操作建议 供应商 -1005 内容含有违禁词 建议修改发送内容 供应商 -185 分组手机号每天限制条数 建议24小时后发送 供应商 -182 内容中超过空格限制 建议修 ...

  2. GIS开发进阶之路(十四) ArcEngine打开cad文件的五种方法、ArcGIS Engine错误码

    ArcEngine打开cad文件的几种方法 方法一.通过遍历CAD数据集,依次加载中点线面注记等图层,所加载的数据均为一个独立的图层. IWorkspaceFactory pWorkspaceFact ...

  3. oracle 错误码大全

    # 错误码 中文释义 英文释义 1 ORA-00001 违反唯一约束条件 (.) unique constraint (string.string) violated 2 ORA-00017 请求会话 ...

  4. Objective-C错误码

    NSMachErrorDomain 头文件目录:/usr/include/mach/kern_return.h #define KERN_SUCCESS 0#define KERN_INVALID_A ...

  5. [微信官方文档] 小程序-错误码信息与解决方案表

    错误码信息与解决方案表 错误码是通过binderror回调获取到的错误信息. 代码 异常情况 理由 解决方案 1000 后端错误调用失败 该项错误不是开发者的异常情况 一般情况下忽略一段时间即可恢复. ...

  6. 解决微信H5获取SDK授权报错提示errMsg: “config:fail,Error: 系统错误,错误码:63002,invalid signature [20200908 22:17:17][]“

    如果常规检查都做过可以仔细看下微信开放文档 这个里面的报错原因 如果都不是那么极有可能是(恭喜你!看样子你的H5页面日活人数还蛮多[呲牙]) 获取腾讯微信平台access_token超过每日默认上限2 ...

  7. 【FFmpeg】ffmpeg中函数返回的错误码:AVERROR及AVERROR_*

    1.AVERROR FFmpeg的错误码大部分使用的PIOSIX标准中错误码的负值. AVERROR定义在文件 FFmpeg-n4.2.1/libavutil/error.h 中 #define AV ...

  8. 【数据库】mysql报错 编码码1130 和错误码1146

    1.错误编码1130 问题:1130-Hose'172.16.12.129'is not allowed to connect to this MySQL server 原因:MySQL服务器没有创建 ...

  9. 关于接口使用抛异常还是返回错误码,下列哪些说法符合《阿里巴巴Java开发手册》

    关于接口使用抛异常还是返回错误码,下列哪些说法符合<阿里巴巴Java开发手册>:答案在文末 A. 向公司外部提供的http/api接口,推荐使用"错误码"方式返回异常或 ...

最新文章

  1. ExtAspNet应用技巧(三) - 302与Asp.Net Ajax
  2. .NET (C#) Internals: ASP.NET 应用程序与页面生命周期——吴秦(Tyler)
  3. SQL 日期格式 问题
  4. c++ string详解 assign
  5. python调用函数获取最开始的异常_Python使用sys.exc_info()方法获取异常信息
  6. 数据分析能不能替代Data Mining?
  7. 数据结构(一):并查集
  8. 观察者模式与发布订阅者模式的区别
  9. 单片机c语言 教案,《单片机C语言》 课程教案.doc
  10. ImageJ(Fiji)安装
  11. Day2 Excel与数据处理之定位条件、选择性粘贴及查找功能
  12. [C++]H106OJ-第二周练习总结
  13. c 语言从指针得到对象,c – 获取指向由智能指针指向的对象的指针 – Ivalue错误...
  14. c#实现浏览器端大文件分块上传
  15. redhat linux 7.2系统安装详细过程
  16. include/linux/if_ppp.h:135: error: expected specifier-qualifier-list before 'aligned_u64'
  17. 无痕埋点在Android中的实现
  18. Efforts should be valuable
  19. React 学习笔记:JSX 语法
  20. 微服务商城mall-swarm本地搭建

热门文章

  1. remote-cloudflare-kv 在 Vercel 上使用 Cloudflare KV
  2. 为什么您仍然需要 DDoS 设备
  3. 机器学习从入门到死亡(上)
  4. 2022 OPPO开发者大会即将来袭!Cocos 3D 渲染管线将率先支持OPPO光追
  5. 蛋白质功能预测中PSSM矩阵的生成
  6. java 抽象数据类型_java抽象数据类型
  7. xml几种解析方式的优缺点
  8. Double里边的NaN是什么?
  9. 服务器防勒索病毒经验分享
  10. C#中抽象方法和虚方法的区别