openssl 从内存直接加载CA证书
参考链接
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证书相关推荐
- nginx 稳定版 1.16.0 发布,支持动态加载 SSL 证书
开发四年只会写业务代码,分布式高并发都不会还做程序员? nginx 1.16.0 稳定版已发布,包含来自 1.15.x 主线分支的新功能和错误修复: 针对流模块(stream module)中的 ...
- 从内存中加载并启动一个exe
从内存中加载并启动一个exe 文章作者:Idle_ (阿呆) 信息来源:[url]http://cnxhacker.net/article/show/2821.html[/url] windows似乎 ...
- 从内存中加载并运行exe(两种方法)
windows似乎只提供了一种启动进程的方法:即必须从一个可执行文件中加载并启动. 而下面这段代码就是提供一种可以直接从内存中启动一个exe的变通办法. 用途嘛, 也许可以 ...
- 从内存中加载DLL Delphi版(转)
源:从内存中加载DLL DELPHI版 原文 : http://www.2ccc.com/article.asp?articleid=5784 MemLibrary.pas //从内存中加载DLL D ...
- Twebbrowser从内存中加载页面
//从内存中加载页面(比加载htm文件速度快)uses ActiveX; procedure WBLoadHTML(WebBrowser: TWebBrowser; HTMLCode: tstring ...
- 超详细HttpClient加载安全证书post请求访问https示例
超详细HttpClient加载安全证书post请求访问https示例 (注:此测试java版本为1.7,经过测试java7以上(不含java7)的版本无需加载安全证书,也无需绕过安全证书就可以通过建立 ...
- openssl给内网IP生成ca证书(ssl证书)
一.要使用 OpenSSL 为内网 IP 生成 CA 证书,您需要遵循以下步骤: 1.创建一个存放证书的文件夹 mkdir /opt/zhengshu 注意:大家自己按照自己的目录创建就行,我的直接放 ...
- nginx 稳定版 1.16.0 发布 支持动态加载SSL证书
Nginx(发音同 engine x)是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个 BSD-like 协议下发行,可以在 UNIX.GNU/Lin ...
- 从内存中加载DLL DELPHI版
//从内存中加载DLL DELPHI版 unit MemLibrary; interface uses Windows;function memLoadLibrary(pLib: Pointer): ...
最新文章
- ddr42400和2660混插_DDR4 2400和3000区别大吗 低频和高频内存性能差距对比
- 前端资源预加载并展示进度条
- oracle生成xml格式化,介绍关于Oracle下存取XML格式数据的方式教程一览
- 电脑主板维修_自学电脑主板维修第45讲
- 看看阿里的考核尺度, 阿里人工资高是有原因的
- Python 实现批量从不同的Linux服务器下载文件
- tcpdump源码分析——抓包原理
- 分支结构程序案例c语言,C语言学习之三——分支结构程序
- Developing Web Applications with Apache, MySQL, memcached, and Perl
- VS2010上连接SQLite数据库
- 常年“盘踞”数据库前五的 MongoDB,在中国有哪些新动向?
- 磁盘及网络测试工具(iperf hdparm dd)
- python学到什么程度可以找到工作-Python学到什么程度可以面试工作?
- Selenium如何处理类悬浮弹出菜单
- 架构运维篇(一):Centos7/Linux安装jdk环境
- ISO50001认证咨询,新版标准更加强调持续改进能源绩效主要体现在以下方面
- RDMA 、InfiniBand、IB卡、IB驱动 之间的关系!
- 二叉树的深度遍历和广度遍历
- Mac Mini - 一个深坑
- zookeeper核心原理