OpenSSL命令---CA.pl
用途:
OpenSSL证书操作的友好接口。该脚本是一个perl脚本,提供有关的命令行参数给openssl命令中一些普通的证书操作。现对于相同的简单选项来说,它故意简化了一些相似的证书创建或管理操作。
用法:
CA.pl [-?] [-h] [-help] [-newcert] [-newreq][-newreq-nodes] [-newca] [=pkcs12] [-xsign] [-sign] [ -signreq] [-signCA] [-signcert] [-verify] [files]
选项说明:
B<?>, B<-h>, B<-help>:打印一个使用消息。
-newcert:创建一个自签名的证书。私钥文件将会写入到文件“newkey.pem”,请求文件将会被写入到“newreq.pem”中。
-newreq:创建一个证书请求文件。私钥文件将会写入到文件“newkey.pem”,请求文件将会被写入到“newreq.pem”中。
-newreq-nodes:与-newreq相同,例外的是私钥文件不会被加密。
-newca:用ca指令创建一个新的CA等级(或者是B<-signcert>和 B<-xsign>选项)。再创建CA的详细过程中,会提示用户输入CA证书的文件目录(它也要包含私钥文件)。在目前的目录中,相关的文件或目录将会被创建到“demoCA”目录中。
-pkcs12:创建一个PKCS#12格式的文件,里面包含用户的证书、私钥以及CA证书。期待用户的证书和私钥为文件"newcert.pem",CA证书为文件demoCA/cacert.pem,创建后的名字为“newcert.p12”。这个名录可以在B<-sign>选项后面调用。PKCS#12文件可以从目录中导出到浏览器中。如果有在命令行中有附加的选项,那将是证书的“friendly name”(它将显示在浏览器中),否则就是使用"My Certificate"。
B<-sign>, B<-signreq>, B<-xsign>:调用CA命令对证书请求文件进行签名。期待证书请求文件在文件“newreq.pem”中。新的证书将会写入到文件“newreq.pem”中,如果设置了B<-xsign>选项,则写入到标准输出中。
-signCA:这个选项和-signreq命令一样,不一样的是它将使用配置文件中的B<v3_ca>字段,于是使前面的请求文件是一个有效的证书。当用根CA创建中间的CA时非常有用。
-signcert:这个选项和-sign命令一样,不一样的是“newreq.pem”中将会提供一个自签名的证书。
-verify:用CA证书验证证书。如果命令行中没有提供证书,则会验证文件“newcert.pem”中的证书。
files:需要验证的一个或多个证书文件。
实例:
创建一个CA目录:
CA.pl -newca
完整的证书创建实例:创建一个CA、创建一个请求文件、签名一个请求文件并创建一个PKCS#12文件:
CA.pl -newca CA.pl -newreq CA.pl -signreq CA.pl -pkcs12 "My Test Certificate"
通过该命令可以创建RSA的CA证书和请求文件,它也可以使用L<req(1)|req(1)>来创建DSA格式的证书和请求文件。
创建一些DSA参数:
openssl dsaparam -out dsap.pem 1024
创建一个DSA CA证书和私钥:
openssl req -x509 -newkey dsa:dsap.pem -keyout cacert.pem -out cacert.pem
创建CA目录和文件(当提示输入CA目录的时候,输入cacert.pem):
CA.pl -newca
创建一个DSA证书请求文件和私钥(一些不同的参数集合必须第一时间创建):
openssl req -out newreq.pem -newkey dsa:dsap.pem
签名请求文件:
CA.pl -signreq
注意:
大多数的文件名字可以在B<CA.pl>脚本中编辑。
如果demoCA目录已经存在,B<-newca>命令将不会重写,也不会做任何事情。如果一个以前已经调用B<-newca>命令,这个问题会发生。为了改正运行状况则建议删除原有的demoCA目录。
在某些计算机环境下,不能够直接使用B<CA.pl>脚本(例如Win32),则默认的配置文件有可能出错。使用以下的命令:
perl -S CA.pl
使用命令后可以用B<OPENSSL_CONF>来改变相应的环境变量。