CA.pl
名称
CA.pl - OpenSSL 证书程序的更友好的界面
概要
CA.pl -? | -h | -help
CA.pl -newcert | -newreq | -newreq-nodes | -xsign | -sign | -signCA | -signcert | -crl | -newca [-extra-cmd parameter]
CA.pl -pkcs12 [certname]
CA.pl -verify certfile ...
CA.pl -revoke certfile [reason]
描述
CA.pl 脚本是一个 Perl 脚本,它为一些常见的证书操作提供给 openssl(1) 命令相关的命令行参数。它旨在通过使用一些简单的选项简化证书创建和管理的过程。
该脚本旨在作为 openssl(1) 程序的简单前端,供初学者使用。它的行为并不总是想要的。要更深入地控制证书命令的行为,请直接调用 openssl(1) 命令。
下面提到的大多数文件名可以通过编辑 CA.pl 脚本进行修改。
在某些环境下,可能无法直接运行 CA.pl 脚本(例如 Win32),并且默认配置文件位置可能错误。在这种情况下,可以运行命令
perl -S CA.pl
并设置 OPENSSL_CONF 环境变量以指向配置文件的正确路径。
选项
- -?, -h, -help
-
打印使用信息。
- -newcert
-
创建一个新的自签名证书。私钥写入文件 newkey.pem,请求写入文件 newreq.pem。调用 openssl-req(1)。
- -newreq
-
创建一个新的证书请求。私钥写入文件 newkey.pem,请求写入文件 newreq.pem。在幕后执行 openssl-req(1)。
- -newreq-nodes
-
与 -newreq 相似,只是私钥不会被加密。使用 openssl-req(1)。
- -newca
-
创建一个新的 CA 层次结构,供 ca 程序(或 -signcert 和 -xsign 选项)使用。系统会提示用户输入 CA 证书的文件名(其中也应包含私钥),或者按下 ENTER 键后会提示用户输入 CA 的详细信息。相关文件和目录将在当前目录下的名为 demoCA 的目录中创建。使用 openssl-req(1) 和 openssl-ca(1)。
如果 demoCA 目录已存在,则 -newca 命令不会覆盖它,并且不会执行任何操作。如果之前使用 -newca 选项的调用异常终止,则可能会发生这种情况。要获得正确的行为,请删除该目录(如果它已经存在)。
- -pkcs12
-
创建一个包含用户证书、私钥和 CA 证书的 PKCS#12 文件。它期望用户证书和私钥位于文件 newcert.pem 中,而 CA 证书位于文件 demoCA/cacert.pem 中,它创建一个文件 newcert.p12。因此,此命令可以在 -sign 选项之后调用。PKCS#12 文件可以直接导入到浏览器中。如果命令行上还有其他参数,它将用作证书的“友好名称”(通常显示在浏览器列表框中),否则将使用名称“我的证书”。将工作委托给 openssl-pkcs12(1)。
- -sign, -signcert, -xsign
-
调用 openssl-ca(1) 命令来签署证书请求。它期望请求位于文件 newreq.pem 中。新的证书将写入文件 newcert.pem,但 -xsign 选项除外,在这种情况下它将写入标准输出。
- -signCA
-
此选项与 -sign 选项相同,只是它使用配置文件部分 v3_ca,因此使签署的请求成为有效的 CA 证书。这在从根 CA 创建中间 CA 时很有用。额外的参数将传递给 openssl-ca(1)。
- -signcert
-
此选项与 -sign 相同,只是它期望自签名证书存在于文件 newreq.pem 中。额外的参数将传递给 openssl-x509(1) 和 openssl-ca(1)。
- -crl
-
生成 CRL。执行 openssl-ca(1)。
- -revoke certfile [reason]
-
吊销指定 certfile 中包含的证书。可以指定一个可选的理由,它必须是以下之一:unspecified、keyCompromise、CACompromise、affiliationChanged、superseded、cessationOfOperation、certificateHold 或 removeFromCRL。利用 openssl-ca(1)。
- -verify
-
针对 demoCA 的 CA 证书验证证书。如果没有在命令行上指定证书,它将尝试验证文件 newcert.pem。调用 openssl-verify(1)。
- -extra-cmd parameter
-
对于每个选项 extra-cmd,将 parameter 传递给与 cmd 相同名称的 openssl(1) 子命令(如果该子命令被调用)。例如,如果调用了 openssl-req(1),则使用 -extra-req 给出的 parameter 将传递给它。对于多词参数,请重复选项或用引号括住 parameters,使其在您的 shell 中看起来像一个词。有关更多信息,请参阅各个命令文档。
示例
创建 CA 层次结构
CA.pl -newca
完整的证书创建示例:创建 CA、创建请求、签署请求,最后创建包含请求的 PKCS#12 文件。
CA.pl -newca
CA.pl -newreq
CA.pl -sign
CA.pl -pkcs12 "My Test Certificate"
环境
环境变量 OPENSSL 可用于指定 OpenSSL 程序的名称。它可以是完整路径,也可以是相对路径。
环境变量 OPENSSL_CONFIG 可用于为由该脚本调用的 req 和 ca 命令指定配置选项和值。它的值应该是选项和路径,如 -config /path/to/conf-file
。
参见
openssl(1), openssl-x509(1), openssl-ca(1), openssl-req(1), openssl-pkcs12(1), config(5)
版权
Copyright 2000-2021 The OpenSSL Project Authors. 保留所有权利。
根据 Apache 许可证 2.0 版(“许可证”)授权使用。除非符合许可证,否则您不得使用此文件。您可以在源代码分发中的 LICENSE 文件或 https://www.openssl.org/source/license.html 中获取副本。