参考链接

openssl 从内存加载ca证书 - Zzz...y - 博客园 (cnblogs.com)

C ++ / OpenSSL:使用根CA从缓冲区而不是文件(SSL_CTX_load_verify_locations) - IT屋-程序员软件开发技术分享社区 (it1352.com)

poha.mqtt.c 库使用tls连接时,默认是通过文件方式加载证书的。使用SSL_CTX_load_verify_locations接口加载CA文件。想要改成从内存直接加载ca证书,将证书硬编码进程序中,防止证书被恶意篡改。需要修改库源码,位于文件SSLSocket.c的SSLSocket_createContext接口中。 修改下面代码。

 if (opts->trustStore || opts->CApath){if ((rc = SSL_CTX_load_verify_locations(net->ctx, opts->trustStore, opts->CApath)) != 1){if (opts->struct_version >= 3)SSLSocket_error("SSL_CTX_load_verify_locations", NULL, net->socket, rc, opts->ssl_error_cb, opts->ssl_error_context);elseSSLSocket_error("SSL_CTX_load_verify_locations", NULL, net->socket, rc, NULL, NULL);goto free_ctx;}}
char *cacrt="-----BEGIN CERTIFICATE-----\n\
MIIDmzCCAoOgAwIBAgIJAPDSM1KhTBCVMA0GCSqGSIb3DQEBCwUAMGQxCzAJBgNV\n\
BAYTAm1nMRAwDgYDVQQIDAdtb29yZ2VuMQ0wCwYxVQQHDAR0ZXN0MRAwDgYDVQQK\n\
DAdtb29yZ2VuMRAwDgYDVQQLDAdtb29yZ2VuMRAwDgYDVQQDDAdtb29yZ2VuMB4X\n\
DTIxMDkyOTA1MjU0OFoXDTMxMDkyNzA1MjU0OdowZDELMAkGA1UEBhMCbWcxEDAO\n\
BgNVBAgMB21vb3JnZW4xDTALBgNVBAcMBHRlc3QxEDAOBgNVBAoMB21vb3JnZW4x\n\
EDAOBgNVBAsMB21vb3JnZW4xEDAOBgNVBAMMB21vb3JnZW4wggEiMA0GCSqGSIb3\n\
DQEBAQUAA4IBDwAwggEKAoIBAQDZPtIfZMYm4zecCugaW2UyzwR29Eydm4cUVQw2\n\
Mv3r3PR082eWKEVJuE8imq4pBX8iVFQPxz+0R2fSzc7sMlWYhWazgWX7r9uYFO8y\n\
HHjIjnE/U+uECw3Nk3O8OKYCEJ98ox8RkswjJ4cDP/Cboi1/kx7UykUXbvkxttqc\n\
Th0uBHf7BjQ7KH8ezlI4qJafBhJzNS7ae+YfdwSAFv3zh99eurL4DZjCj+uUGcQf\n\
ZOmRKvEeWazcxLH7mBeErF6r+lnGPjYRS8PbQ9zqiwszXAdTBzHpD6G3mSBsT3ZI\n\
CTARrlSjL17aj4FcH7NlHQmH6jE+lf0m3ktzXo2y+V0aeX+zAgMBAAGjUDBOMB0G\n\
A1UdDgQWBBTmqUNbzJumi92sMLzQBXVie0+APTAfBgNVHSMEGDAWgBTmqUNbzJum\n\
i92sMLzQBXVie0+APTAMBgNVHRMEBTADAQH/mA0GCSqGSIb3DQEBCwUAA4IBAQDC\n\
6UBadJxukIsSQMKCA5J2SOGzQp28IkVOmD+xoKp7ewp8GW6m4GVZg1Jnoi1FfC3R\n\
MCjVFgXHsDY8rAAhlIt9aMSeElquN/9R/y7WzYzRQflf6Pz8RcPDIepz113DFCXk\n\
jmIXedBWHJBkN6WuK5UMcMhUYfTqy/jbD3ZsbfF//zNsJrLOhHOVOn+oXkDZVbWX\n\
P5E5LI7B+cYMNRHusqyWPX1J78dgM+xikKZere7iY0Y38muOiPlcLmEty4uYgB4M\n\
xrqau3x80HvzhBzmdXfmAIpLLwQpCeUe105EAfewYPUDstwyOy00THTzZdAqFw8v\n\
/gQNfYEUcxYWky4bgFwQ\n\
-----END CERTIFICATE-----\n";BIO * cbio = BIO_new_mem_buf(cacrt, strlen(cacrt));X509 * cert = PEM_read_bio_X509(cbio, NULL, 0, NULL); //PEM格式X509_STORE_add_cert(net->ctx->cert_store, cert);X509_free(cert);BIO_free(cbio);

openssl 从内存直接加载CA证书相关推荐

  1. nginx 稳定版 1.16.0 发布,支持动态加载 SSL 证书

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   nginx 1.16.0 稳定版已发布,包含来自 1.15.x 主线分支的新功能和错误修复: 针对流模块(stream module)中的 ...

  2. 从内存中加载并启动一个exe

    从内存中加载并启动一个exe 文章作者:Idle_ (阿呆) 信息来源:[url]http://cnxhacker.net/article/show/2821.html[/url] windows似乎 ...

  3. 从内存中加载并运行exe(两种方法)

    windows似乎只提供了一种启动进程的方法:即必须从一个可执行文件中加载并启动.      而下面这段代码就是提供一种可以直接从内存中启动一个exe的变通办法.      用途嘛,     也许可以 ...

  4. 从内存中加载DLL Delphi版(转)

    源:从内存中加载DLL DELPHI版 原文 : http://www.2ccc.com/article.asp?articleid=5784 MemLibrary.pas //从内存中加载DLL D ...

  5. Twebbrowser从内存中加载页面

    //从内存中加载页面(比加载htm文件速度快)uses ActiveX; procedure WBLoadHTML(WebBrowser: TWebBrowser; HTMLCode: tstring ...

  6. 超详细HttpClient加载安全证书post请求访问https示例

    超详细HttpClient加载安全证书post请求访问https示例 (注:此测试java版本为1.7,经过测试java7以上(不含java7)的版本无需加载安全证书,也无需绕过安全证书就可以通过建立 ...

  7. openssl给内网IP生成ca证书(ssl证书)

    一.要使用 OpenSSL 为内网 IP 生成 CA 证书,您需要遵循以下步骤: 1.创建一个存放证书的文件夹 mkdir /opt/zhengshu 注意:大家自己按照自己的目录创建就行,我的直接放 ...

  8. nginx 稳定版 1.16.0 发布 支持动态加载SSL证书

    Nginx(发音同 engine x)是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个 BSD-like 协议下发行,可以在 UNIX.GNU/Lin ...

  9. 从内存中加载DLL DELPHI版

    //从内存中加载DLL DELPHI版 unit MemLibrary; interface uses Windows;function memLoadLibrary(pLib: Pointer): ...

最新文章

  1. ddr42400和2660混插_DDR4 2400和3000区别大吗 低频和高频内存性能差距对比
  2. 前端资源预加载并展示进度条
  3. oracle生成xml格式化,介绍关于Oracle下存取XML格式数据的方式教程一览
  4. 电脑主板维修_自学电脑主板维修第45讲
  5. 看看阿里的考核尺度, 阿里人工资高是有原因的
  6. Python 实现批量从不同的Linux服务器下载文件
  7. tcpdump源码分析——抓包原理
  8. 分支结构程序案例c语言,C语言学习之三——分支结构程序
  9. Developing Web Applications with Apache, MySQL, memcached, and Perl
  10. VS2010上连接SQLite数据库
  11. 常年“盘踞”数据库前五的 MongoDB,在中国有哪些新动向?
  12. 磁盘及网络测试工具(iperf hdparm dd)
  13. python学到什么程度可以找到工作-Python学到什么程度可以面试工作?
  14. Selenium如何处理类悬浮弹出菜单
  15. 架构运维篇(一):Centos7/Linux安装jdk环境
  16. ISO50001认证咨询,新版标准更加强调持续改进能源绩效主要体现在以下方面
  17. RDMA 、InfiniBand、IB卡、IB驱动 之间的关系!
  18. 二叉树的深度遍历和广度遍历
  19. Mac Mini - 一个深坑
  20. zookeeper核心原理

热门文章

  1. GPT分区相关的操作
  2. java反射获取子类或者父类的属性值
  3. 《设计模式》设计模式的基本原则
  4. linux ln -sv命令,linux ln 命令详解
  5. ln x的matlab表示,matlab中ln怎么表示
  6. xargs 重定向输出 示列分析
  7. Spring Security登录成功后重定向到登陆前页面 解决方案
  8. java中定义ListNode
  9. [EndNote]EndNote在Word中的工具条消失了怎么办?-知乎转载
  10. 洋洋背古诗(2021)