当前位置: 首页 > news >正文

# Openssl关键知识

Openssl关键知识

文章目录

  • Openssl关键知识
    • 1 常用命令
    • 2 证书扩展段(Extensions Section)
    • 3 常用证书类型

openssl及证书相关知识一般好像很简单,其实很复杂,这里介绍一些相对关键的部分,以后还会扩展。

更多openssl及ca知识请看https://gitee.com/zhf_sy/zzxia-openssl-ca-server

1 常用命令

命令用途典型使用场景
openssl genrsa生成 RSA 私钥为 CA 或用户生成私钥文件(.key
openssl req生成证书请求(CSR)或自签名证书基于私钥生成 CSR 文件(.csr),交互式或静默式填写主题信息
openssl ca以 CA 身份签发/吊销证书CA 根据 CSR 签发证书,记录到index.txt数据库,管理序列号
openssl x509证书格式转换、查看、自签名CA 自签名证书生成(-req -signkey)、PEM↔DER 格式转换、查看证书详情
openssl crlCRL 格式转换与查看PEM↔DER 格式转换、查看吊销列表详情
openssl verify验证证书链验证用户证书是否由指定 CA 签发(-CAfile

openssl cavsopenssl x509签发区别

  • openssl ca:完整的 CA 流程,会更新index.txt数据库和serial序列号,支持吊销管理
  • openssl x509 -req -signkey:简单的自签名,不经过 CA 数据库,仅用于根 CA 自签名证书(两步:先req生成 CSR,再x509自签名)
  • openssl req -new -x509:一步完成自签名证书生成(省去 CSR 中间步骤),效果等同上面两步,但更简洁

2 证书扩展段(Extensions Section)

本项目的openssl.cnf中定义了以下扩展段,用于不同类型的证书签发:

扩展段用途basicConstraintssubjectKeyIdentifierauthorityKeyIdentifiersubjectAltName
v3_reqCSR 生成openssl reqreq_extensionsCA:FALSEhash❌ 不可包含(CSR 阶段无签发者)@alt_names
usr_cert终端证书签发openssl ca-extensionsCA:FALSEhashkeyid,issuer@alt_names
v3_caCA/sub-CA 证书签发openssl caopenssl x509-extensionsCA:truehashkeyid:always,issuer(严格模式)@alt_names

为什么v3_req不能包含authorityKeyIdentifier
因为v3_req同时被openssl req用作req_extensions。生成 CSR 时还没有签发者证书,如果包含authorityKeyIdentifier会导致 OpenSSL 报错。

keyidvskeyid:always的区别:

  • keyid:尝试从签发者证书复制 SKI,失败时静默跳过(适合终端证书)
  • keyid:always:失败时报错,确保证书链完整性(适合 CA 证书)

3 常用证书类型

编号参数值证书类型密钥用法 (keyUsage)增强密钥用法 (extendedKeyUsage)
1caCA证书nonRepudiation, keyCertSign, cRLSign-
2code代码签名digitalSignaturecodeSigning
3computer计算机digitalSignature, keyAgreementserverAuth
4webserverWEB服务器digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyAgreementserverAuth
5client客户端digitalSignature, nonRepudiation, keyEncipherment, dataEnciphermentclientAuth
6trustlist信任列表digitalSignaturemsCTLSign
7timestamp时间戳digitalSignature, nonRepudiation, keyEncipherment, dataEnciphermenttimeStamping
8ipsecIPSecdigitalSignature, nonRepudiation, keyEncipherment, dataEncipherment1.3.6.1.5.5.8.2.2
9email安全邮件digitalSignature, nonRepudiation, keyEncipherment, dataEnciphermentemailProtection
10smartcard智能卡登录digitalSignature, keyAgreement, decipherOnlymsEFS, 1.3.6.1.4.1.311.20.2.2
http://www.jsqmd.com/news/461376/

相关文章:

  • windows 7 用户账户的三种类型
  • Component mscomm32.ocx not correctly registered,file is missing or invalid
  • 基于Java springboot海洋馆预约系统(源码+文档+运行视频+讲解视频)
  • 基于微信小程序的家校互动平台开发与设计
  • 打开软件就弹出msvcp140.dll如何修复? 附免费下载方法分享
  • 双系统给ubuntu扩容
  • springboot基于协同过滤算法的个性化音乐推荐系统
  • 【Matlab】MATLAB教程:符号求导(以diff(x²+2x,x)为核心案例)
  • 基于微信小程序的社区养老服务系统的设计与实现
  • 二分查找的大致了解
  • Python实战:将字符串转换为6位数字密码(附完整代码)
  • 靠谱的工业显示器领先公司
  • Java继承-重写
  • 好利来卡面值回收是多少?畅回收回收,折算清楚,无套路 - 畅回收小程序
  • C++合成金属游戏
  • 睡前历史说赛道爆火!用Coze智能体工作流1分钟搞定爆款视频,附详细教程
  • 各个项目端口号
  • 面向关键行业的 Oracle 兼容性实践与落地复盘
  • 关注点之(十二)外观与纹理重建
  • 镜像视界空间智能战略:人工智能+空间计算助力数字中国建设---融合 Pixel-to-Space空间反演 × DeepSeek认知引擎 × SpaceOS空间操作系统 × AI智能体系统
  • SpringBoot校园新闻网站毕设源码免费项目
  • Flutter 三方库 http_helper 的鸿蒙化适配指南 - 打造标准化的 REST 客户端封装、支持响应式异常拦截与请求全流程钩子
  • DVWA靶机搭建教程
  • 旅行规划 Agent 需求收集部分
  • Odoo税务回执解析与存储机制
  • js:对象解构赋值——函数扩展_箭头函数
  • java堆内存泄漏利用内存分析工具(Memory Analyzer Tool,MAT)分析
  • Langflow 1.8 新特性:Knowledge Base 本地知识库组件完全上手指南
  • GNSS模块实战教程:大夏龙雀 DX-GP21,从硬件接线到 NMEA 数据解析(附完整代码)
  • 基于SpringBoot的校园设备维护报修系统设计与开发(源码+精品论文+答辩PPT等资料)