OpenSSL ca证书命令操作详解

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/.rand

default_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 需求灵活地配置各种规则和设置。

你可能感兴趣的:(#,openssl命令,linux,ssl,网络安全,密码学)