OpenSSL ca证书命令操作详解

news/2025/2/14 1:25:47/

OpenSSL 的 ca 命令用于操作证书颁发机构(CA,Certificate Authority)的操作,包括签发、撤销和管理证书。以下是 OpenSSL 版本 3.0 中 openssl ca 命令的详细使用手册。请注意,由于文本长度限制,以下内容可能不包含所有参数的详细说明。你可以使用 openssl ca -help 命令在终端中获取帮助信息。

一、ca测试证书生成

首先我们需要生成一个ca证书。在linux操作有一个脚本可以直接帮助我们生成ca证书。

二、openssl ca命令语法说明

openssl ca -cert ca_cert.pem -keyfile ca_key.pem -config ca_config.cnf[-in file] [-out file] [-outdir dir] [-infiles file ...] [-spkac file][-key file] [-keyform PEM|DER] [-keyfile file] [-keyform PEM|DER][-out file] [-outform PEM|DER] [-extensions section] [-extfile file][-revoke file] [-subj arg] [-utf8] [-nameopt option] [-cert arg][-enddate YYMMDDHHMMSSZ] [-days arg] [-md arg] [-batch] [-preserveDN][-policy arg] [-preserveDN] [-preserveDN][-include file] [-rand file(s)] [-engine id][-status serial|hex] [-updatedb] [-crldays arg][-crlhours arg] [-crlsec arg] [-crlexts section][-engine id] [-createdb] [-msie_hack] [-noemailDN] [-extfile file][-selfsign] [-separate] [-crlexts section]

参数说明:

  • -cert ca_cert.pem:指定 CA 证书文件。

  • -keyfile ca_key.pem:指定 CA 私钥文件。

  • -config ca_config.cnf:指定 OpenSSL 配置文件。

  • -in file:输入的证书签署请求文件。

  • -out file:输出的签署证书文件。

  • -outdir dir:指定输出目录。

  • -infiles file ...:输入的多个证书签署请求文件。

  • -spkac file:输入的 Netscape SPKAC 文件。

  • -key file:签署证书时使用的私钥文件。

  • -out file:输出的签署证书文件。

  • -extensions section:指定证书扩展字段。

  • -extfile file:从文件中读取扩展字段配置。

  • -revoke file:吊销证书。

  • -subj arg:自定义证书主题字段。

  • -utf8:使用 UTF8 编码。

  • -nameopt option:指定证书主题名称选项。

  • -enddate YYMMDDHHMMSSZ:设置证书的截止日期。

  • -days arg:设置证书的有效期天数。

  • -md arg:指定摘要算法(如 sha256)。

  • -batch:批量模式,无需确认。

  • -preserveDN:保留原始主题名称。

  • -include file:包含其它 CA 配置文件。

  • -rand file(s):指定随机数种子文件。

  • -engine id:指定加密引擎。

  • -status serial|hex:检查证书状态。

  • -updatedb:更新证书数据库。

  • -crldays arg:设置 CRL 的有效期天数。

  • -crlhours arg:设置 CRL 的有效期小时数。

  • -crlsec arg:设置 CRL 的有效期秒数。

  • -crlexts section:指定 CRL 扩展字段。

  • -createdb:创建证书数据库。

  • -msie_hack:使用 MSIE 兼容模式。

  • -noemailDN:不使用电子邮件字段。

  • -selfsign:自签名 CA 证书。

  • -separate:对每个输入文件生成单独的证书。

  • -crlexts section:指定 CRL 扩展字段。


请注意,实际使用时,你需要根据具体的需求和场景,选择合适的参数和配置文件来执行 openssl ca 命令。

三、openssl ca 命令实操

2.1 openssl ca -config 配置详解

openssl ca -config 配置文件

OpenSSL 的 ca 命令使用的配置文件遵循 OpenSSL 配置文件的语法和结构。配置文件的格式是文本形式,可以包含各种指令和参数,用于定义 CA 的行为、规则和选项。以下是一个简单的 OpenSSL CA 配置文件的示例:

[ ca ]
default_ca = my_ca[ my_ca ]
dir = /path/to/ca/directory
certs = $dir/certs
crl_dir = $dir/crl
database = $dir/index.txt
new_certs_dir = $dir/newcerts
certificate = $dir/ca_cert.pem
private_key = $dir/ca_key.pem
serial = $dir/serial
crl = $dir/ca_crl.pem
RANDFILE = $dir/.randdefault_md = sha256
default_days = 365
policy = my_policy
x509_extensions = my_extensions

在这个配置文件中:

  • [ ca ][ my_ca ] 是配置段(section),用于定义 CA 的默认行为和规则。

  • default_ca = my_ca 指定了默认的 CA 配置段。

  • [ my_ca ] 配置段中,包含了 CA 相关的各种参数和选项,例如 CA 目录路径、证书、私钥、CRL(证书吊销列表)等文件的路径,摘要算法、证书有效期等设置。

  • default_md = sha256 指定了默认的摘要算法为 SHA-256。

  • default_days = 365 指定了默认的证书有效期为 365 天。

  • policy = my_policyx509_extensions = my_extensions 指定了自定义的策略和证书扩展。

请根据实际需求修改配置文件中的参数和选项。在 OpenSSL 的官方文档或手册中,你可以找到更详细的配置文件指令和选项说明。配置文件是根据需要自定义的,可以根据你的 CA 需求灵活地配置各种规则和设置。


http://www.ppmy.cn/news/1207620.html

相关文章

入门指南:Docker的基本命令

入门指南:Docker的基本命令 Docker是一个功能强大的容器化平台,可以帮助您轻松构建、打包和部署应用程序。要充分利用Docker,您需要了解一些基本命令。本文将介绍并示范Docker的一些最重要的基本命令,以帮助您快速上手。 1. doc…

redis 笔记 3

2 集群 2.1 集群模式 1、Redis 集群搭建有几种模式? Redis 集群搭建有三种模式:主从模式、哨兵模式和集群模式。 以下是这三种模式的示例说明: 主从模式(Master-Slave): 特点:一个主节点(Master)和多个从节点(Slave),主节点负责写入数据和处理请求,从节点负责…

怎么将pdf转换成word?

怎么将pdf转换成word?将pdf文件转换成word是一件非常重要的转换技能,将pdf转换成word可以解决非常多的问题,总结起来主要有以下这些:编辑文本:① PDF文件通常是不可编辑的,而将其转换为Word格式后&#xff…

GDPU 数据结构 天码行空9

实验九 哈夫曼编码 一、【实验目的】 1、理解哈夫曼树的基本概念 2、掌握哈夫曼树的构造及数据结构设计 3、掌握哈夫曼编码问题设计和实现 二、【实验内容】 1、假设用于通信的电文仅由8个字母 {a, b, c, d, e, f, g, h} 构成,它们在电文中出现的概率分别为{ 0.…

【JAVA学习笔记】67 - 坦克大战1.5 - 1.6,防止重叠,记录成绩,选择是否开新游戏或上局游戏,播放游戏音乐

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter20/src 增加功能 1.防止敌人坦克重叠运动 2.记录玩家的成绩,存盘退出 3.记录当时的敌人坦克坐标,存盘退出 4.玩游戏时,可以选择是开新游戏还是继续上局…

【星海出品】flask(三) 组件

Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架 wsgiref 因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以,需要一个统一的接口协议来实现这样的服务器软件,让我们专心用Python编写Web业务。 这个…

【已解决】ModuleNotFoundError: No module named sklearn

这个问题比较简单,就简单记录如下: "ModuleNotFoundError: No module named sklearn" 错误表示你尝试导入名为 "sklearn" 的Python模块,但Python解释器找不到该模块。这通常是因为你尚未安装所需的Python库或模块。要解决…

Kibana使用Watcher监控服务日志并发送飞书报警(Markdown)

Watcher是什么 Kibana Watcher 是 Elasticsearch 的监控和告警工具,它允许你设置和管理告警规则以监控 Elasticsearch 数据和集群的状态。Kibana Watcher 可以监测各种指标和数据,然后在满足特定条件时触发警报。它提供了一种强大的方式来实时监控 Elas…