#if defined(BL_VERIFY)
mbedtls_ssl_conf_authmode(&bl_hsbuf->conf, MBEDTLS_SSL_VERIFY_REQUIRED/*MBEDTLS_SSL_VERIFY_OPTIONAL*/);
mbedtls_ssl_conf_ca_chain( &bl_hsbuf->conf, &bl_hsbuf->cacert, NULL );
#else
mbedtls_ssl_conf_authmode(&bl_hsbuf->conf, MBEDTLS_SSL_VERIFY_NONE);
#endif
mbedtls_ssl_conf_rng(&bl_hsbuf->conf, mbedtls_ctr_drbg_random, &bl_hsbuf->ctr_drbg);
//todo
mbedtls_ssl_conf_read_timeout(&bl_hsbuf->conf, 0);
//mbedtls_ssl_set_timer_cb(&ssl, &ssl_timer, f_set_timer, f_get_timer);
mbedtls_ssl_conf_dbg( &bl_hsbuf->conf, bl_debug, stdout );
当 BL_VERIFY
被定义时:
- 会启用证书验证功能 (
MBEDTLS_SSL_VERIFY_REQUIRED
)
- 会解析并加载证书 (
mbedtls_x509_crt_parse
)
- 会设置CA证书链 (
mbedtls_ssl_conf_ca_chain
)
当 BL_VERIFY
未被定义时:
- 使用
MBEDTLS_SSL_VERIFY_NONE
模式,不验证服务器证书
- 不包含证书相关的代码
证书数据来自 bl_test_cli_key_rsa
,其长度由 bl_test_cas_pem_len
定义。
测试了下 这两个 位置 定义了的时候 为真 启用证书验证功能
没定义 注释了 下面的代码 就不编译 也没法运行。
解决办法
一:复制一份 忽略证书验证。完美解决。
二:或者 去掉defined
让下面的 代码 能编译 也就能正常忽略了。
这应该算 bug代码了
大佬们 说说
测试 安信可论坛 可正常访问,同理其他网站也可。
正规方法 启用证书验证,添加证书。
