# Openssl关键知识

Openssl关键知识

文章目录

  • Openssl关键知识
    • [1 常用命令](#1 常用命令)
    • [2 证书扩展段(Extensions Section)](#2 证书扩展段(Extensions Section))
    • [3 常用证书类型](#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 crl CRL 格式转换与查看 PEM↔DER 格式转换、查看吊销列表详情
openssl verify 验证证书链 验证用户证书是否由指定 CA 签发(-CAfile

openssl ca vs openssl 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 中定义了以下扩展段,用于不同类型的证书签发:

扩展段 用途 basicConstraints subjectKeyIdentifier authorityKeyIdentifier subjectAltName
v3_req CSR 生成openssl reqreq_extensions CA:FALSE hash ❌ 不可包含(CSR 阶段无签发者) @alt_names
usr_cert 终端证书签发openssl ca-extensions CA:FALSE hash keyid,issuer @alt_names
v3_ca CA/sub-CA 证书签发openssl caopenssl x509-extensions CA:true hash keyid:always,issuer(严格模式) @alt_names

为什么 v3_req 不能包含 authorityKeyIdentifier

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

keyid vs keyid:always 的区别:

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

3 常用证书类型

编号 参数值 证书类型 密钥用法 (keyUsage) 增强密钥用法 (extendedKeyUsage)
1 ca CA证书 nonRepudiation, keyCertSign, cRLSign -
2 code 代码签名 digitalSignature codeSigning
3 computer 计算机 digitalSignature, keyAgreement serverAuth
4 webserver WEB服务器 digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyAgreement serverAuth
5 client 客户端 digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment clientAuth
6 trustlist 信任列表 digitalSignature msCTLSign
7 timestamp 时间戳 digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment timeStamping
8 ipsec IPSec digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment 1.3.6.1.5.5.8.2.2
9 email 安全邮件 digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment emailProtection
10 smartcard 智能卡登录 digitalSignature, keyAgreement, decipherOnly msEFS, 1.3.6.1.4.1.311.20.2.2
相关推荐
Yana.nice5 小时前
Linux 只保留 30 天内日志(find命令删除日志文件)
linux·运维·chrome
andxe7 小时前
安科士 AndXe 技术博客:400G QSFP112 SR4 光模块|AI 算力与超算短距互联最优方案
网络·人工智能·光模块·光通信
shiyi.十一8 小时前
第2章:应用层 — 知识要点与架构
网络·计算机网络·架构
DFT计算杂谈8 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
水境传感 李兆栋9 小时前
GNSS 位移监测站 :毫米级感知,筑牢安全监测防线
网络
Zhang~Ling10 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
DeeplyMind10 小时前
Linux 深入 per-VMA lock:Linux 缺页路径如何摆脱 mmap_lock
linux·per-vma lock
爱写代码的森10 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
中微极客10 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能
XMAIPC_Robot11 小时前
软硬协同实时控制|RK3588业务调度+FPGA硬件时序,ethercat实现半导体设备微秒级响应(125us)
linux·arm开发·人工智能·fpga开发