OpenSSL 的 ca 命令用于操作证书颁发机构(CA,Certificate Authority)的操作,包括签发、撤销和管理证书。以下是 OpenSSL 版本 3.0 中 openssl ca 命令的详细使用手册。请注意,由于文本长度限制,以下内容可能不包含所有参数的详细说明。你可以使用 openssl ca -help 命令在终端中获取帮助信息。
首先我们需要生成一个ca证书。在linux操作有一个脚本可以直接帮助我们生成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 -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_policy 和 x509_extensions = my_extensions 指定了自定义的策略和证书扩展。
请根据实际需求修改配置文件中的参数和选项。在 OpenSSL 的官方文档或手册中,你可以找到更详细的配置文件指令和选项说明。配置文件是根据需要自定义的,可以根据你的 CA 需求灵活地配置各种规则和设置。