用Openssl API制作证书

gmssl编程之签发X509证书 gmssl编程之签发证书前言命令行实现方式编程实现方式step1. 产生密钥对step2. 生成证书请求step3. 签发X509源代码 前言 最近由于项目需求,需要通过代码组装并签发标准X509格式数字证书。故而查询资料对gmssl/openssl中签发证书流程就行了一番研究,终于完成。先记录如下. 命令行实现方式 命令行方式下使用gmssl/openssl指令进行证书签发主要有三步:生成密钥对(私钥)、生成证书请求、签发证书。 具体小伙伴们可参考小编这篇文章:Gmssl生成自签名证书 编程实现方式 同理 阅读详情

    Openssl中形成X509证书的函数集中在genrsa.c,req.c,ca.c,x509.c等中,但是这些文件中的函数过于复杂,不太容易理解。下载了中国信息安全组织webmaster的CISOCA后受益非浅,思路清晰,真是非常感谢zrh。
一:准备工作
    确保在windows2000系统安装了openssl,vc6.0。将libeay32.dll和SSLeay32.dll复制到system32目录下,将libeay32.lib和SSLeay32.lib复制到当前目录并且导入工程中,将openssl里inc32下的openssl复制到VC的include文件夹下(或者用option->directories也行),切记在主函数的开头包含如下:
OpenSSL_add_all_ciphers();
OpenSSL_add_all_digests();
ERR_load_crypto_strings();

二:产生密钥对
    从公钥基础设施(PKI)这个名词上就可以看出密钥在这个体系中的重要性,数字证书也就是将公钥和实体的一些信息绑定并且跟它相关的私钥联合使用,所以形成一对安全的密钥对是至关重要的。RSA算法是现在比较流行的公开密钥算法,在openssl里,产生RSA密钥对的文件为genrsa.c.
主要有如下两个函数:
    1,app_RAND_load_files(char *file),它的目的是导入随机数种子文件。因为RSA算法的基础是随机产生两个大素数,所以随机数的产生极为重要,有时要配置专用机器随时生成,不过这里可以建立一个包含两三行以上的随机字符的文件即可。
    2,RSA_generate_key(int bits, unsigned long e_value,void (*callback)(int,int,void *), void *cb_arg),参数bits是密钥的长度(如1024),参数e_value是RSA中公开的加密密钥,一般有3, 17 or 65537,常用0x10001L(十进

Openssl和PKCS#11的故事 1.1   What to do 通过Openssl和PKCS#11接口,使用USBKEY中的私钥和证书来签发一个下级证书。 1.2              背景 数字证书颁发过程一般为:用户首先产生自己的密钥对,并将公共密钥及部分个人身份信息传送给认证中心。认证中心在核实身份后,将执行一些必要的步 骤,以确信请求确实由用户发送而来,然后,认证中心将发给用户一个数字证书,该证书内包含用户... 阅读详情

相关推荐

openssl 常用api的作用与使用

服务端编写步骤 SSL_library_init SSL库的初始化 OpenSSL_add_all_algorithms 载入所有的SSL算法 SSL_load_error_strings() 载入所有SSL错误消息 SSL_CTX_new() 产生一个SSL CTX SSL_CTX_use_certificate_file 载入用户的数字证书 X509 *SSL_get_peer_certificate(const SSL *ssl);// 获取对方的数字证书 ...

小x的博客 5601

PFX证书制作完整教程与实战指南

ECC基于椭圆曲线上的离散对数问题(ECDLP):给定点 $ P $ 和 $ Q = kP $,求解整数 $ k $ 在计算上极为困难。相比RSA的大数分解问题,ECDLP在相同安全强度下所需密钥长度更短。一条典型的椭圆曲线定义为:其中 $ p $ 为素数,$ a $、$ b $ 为常数,满足判别式 $ 4a^3 + 27b^2 \not\equiv 0 \mod p $ 以确保无奇点。

weixin_35995661的博客 1131

避开这些坑!QMT多因子策略实盘中的5个常见错误及解决方案

本文深入剖析了在QMT平台上实施多因子策略时常见的5个错误,包括因子过拟合、数据延迟处理不当、因子失效、交易成本低估和风险控制缺失,并提供了实用的解决方案。通过优化因子筛选、数据对齐和动态管理,帮助量化交易者提升策略稳健性和实盘表现。

k5l6m的博客 238

深入解析TI C2000 ePWM模块:峰值电流模式Buck与LLC谐振变换器实战配置

脉宽调制(PWM)技术是电力电子与数字电源控制的核心,它通过调节开关信号的占空比或频率,实现对功率变换器输出电压、电流的精确控制。其基本原理是利用微控制器内部的定时器和比较器,生成具有特定时序的方波信号,驱动功率开关器件。这项技术的核心价值在于将复杂的模拟控制环路数字化,从而提升系统的可控性、灵活性和可靠性。在电机驱动、不间断电源(UPS)、服务器电源和新能源逆变器等广泛应用场景中,PWM技术都是实现高效能量转换的基石。本文聚焦于德州仪器(TI)C2000系列微控制器中功能强大的增强型PWM(ePWM)模块

weixin_30410119的博客 341

告别USB转接:在STM32探索板上用SPI跑通ESP-Hosted,实现Wi-Fi/BLE连接

本文详细介绍了如何在STM32F469I-DISCO开发板上通过SPI接口实现ESP-Hosted方案,为嵌入式设备添加Wi-Fi和蓝牙连接功能。通过硬件配置、协议栈优化和性能测试,展示了这一创新方案的成本效益和开发效率,特别适合资源受限但需要稳定无线连接的嵌入式应用场景。

weixin_34046298的博客 252

Dify学习笔记-知识库(六)

Dify学习笔记-知识库

大数据知识梳理 2万+

maxwell 平面变压器仿真(一)

在学习开关电源设计的时候,我们难免要设计变压器,采用有限元仿真软件MAXWELL 可以帮助我们确定变压器的励磁电感,漏感等参数。对于我们的理论分析大有裨益。但是苦于这破软件的教程真的是相当的零散,我相信大家用起来也总是苦于没有系统的教程指导,撰写本文的目的有两个,一个是记录自己使用的一些问题,一个是给大家提供一个可以参考的文档。

qq_45405656的博客 8243

[Godot][入门] 安装与版本选择:3.x 还是 4.x?(按项目类型一键决策)

摘要: Godot引擎版本选择需根据项目需求权衡3.x与4.x。Godot4.x(如4.2)适合3D开发和新项目,支持Vulkan和GDScript2.0,但生态尚不成熟;Godot3.x(如3.5.3)则更适合稳定2D开发、Web导出及依赖现有插件/教程的场景。安装方式极简,官网下载解压即可运行。新手建议:短期高效选3.x,长期探索选4.x,旧项目勿盲目迁移。附版本对比表及决策树,助开发者快速匹配需求。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 910

ABAP 大规模数据并行处理实战,六套 Parallel Processing Framework 如何选,性能调优真正该盯住什么

如果今天真的面对那份执行 14 个小时的生产报表,我不会马上把原来的 Loop 改成 50 个aRFC。我会先用 SAT、ST12、SQL Monitor 和 HANA 侧工具确认时间到底花在哪里。如果 90% 时间其实消耗在一条低效 SQL 上,Parallel Processing 只是让 50 个 Worker 同时执行那条低效 SQL,数据库会比原来更痛苦。应该先把串行逻辑本身优化到合理水平。该做 Set-based Processing 的地方先交给 HANA。该避免SELECT。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 149

180.在 Vue3 中使用 OpenLayers 实现多个多边形的绘制、编辑、删除与清空

【摘要】本文介绍如何在Vue3+TypeScript环境下使用OpenLayers实现多边形地图交互功能。通过Composition API封装核心逻辑,实现了多边形绘制、编辑、删除及清空等操作。关键技术包括:使用VectorLayer管理图形数据,Draw/Modify/Select交互控制,以及通过ref()管理交互状态。文中提供了完整代码示例,并解决了交互对象叠加问题,为开发GIS应用提供了基础模块。该方案支持扩展为数据库存储、后端交互等高级功能。

小彭的博客 769

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: 建立一个简单的数字证书中心
下一篇: 数字证书的中文化问题
sagely
博客等级 码龄22年 6粉丝 28原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值