CA.pl

来源:互联网 发布:cmd mysql utf8 乱码 编辑:程序博客网 时间:2024/06/05 14:34

用途

  CA.pl - OpenSSL证书编程的友好接口。 

用法

  CA.pl  [-?] [-h] [-help] [-newcert] [-newreq] [-newreq-nodes] [-newca] [-xsign] [-sign]    [-signreq] [-signcert] [-verify] [files]

描述

  CA.pl脚本是一个perl脚本,支持openssl命令相关的证书选项命令行参数。它的目的是通过一些简单的选项简化证书创建和管理的过程。

命令选项:

?,-h, -help

  打印使用信息  

-newcert

  创建一个新的自签名的证书。私钥将被写入到“newkey.pem”文件,请求将被写入到“newreq.pem”文件。

-newreq

  创建一个新的证书请求文件。私钥将被写到“newkey.pem”文件,请求将被写入到“newreq.pem”文件。

-newreq-nodes

  和-newreq一样,但不加密私钥。

-newca

  使用ca程序创建一个新的CA等级(也可以通过-signcert和-xsign选项)。用户会被提示输入CA证书(也包括私钥)的文件名,或是通过ENTER键获得详细的提示信息。相关的文件和目录被创建在“demoCA”目录下,同时将demoCA作为当前目录。  

-pkcs12

  创建一个包含了用户证书,私钥和CA证书的PKCS#12格式文件。它期待用户的证书和私钥为"newcert.pem"文件,而CA证书为文件demoCA/cacert.pem,同时创建一个名为newcert.p12的文件。这个命令也可以在-sign选项后面调用。PKCS#12文件可以直接导入到浏览器中。如果在命令行上附加附加的参数(一些提示之类的),那这个参数会被显示到浏览器的列表框中,否则的话会显示“My Certificate”。  

-sign, -signreq, -xsign

  调用ca程序对一个证书请求文件进行签名。它期待证书请求在“newreq.pem”文件中。除了-xsign选项是将新的证书写到标准输出外,其他选项都会将新证书写到“newcert.pem”文件中。

-signCA

  这个选项和-signreq选项是一样的,只不过它会使用配置文件中v3_ca字段,这使得签署时要求是一个有效的CA证书。这对于从根CA创建一个中间等级的CA时是非常有用的。

-signcert

  这个选项和-sign选项一样,但它要求“newreq.pem”中将会提供一个自签名的证书。

-verify

  为“demoCA”下的CA证书进行验证。如果命令中没有提供任何证书,则会验证“newcert.pem”文件中的证书。

files

  用于验证可选的一个或多个证书的文件名称。

示例

创建一个CA目录

  CA.pl -newca

 

完整的证书创建示例

  创建一个CA、创建一个请求文件、签署请求文件,最后创建一个PKCS#12文件。

  CA.pl -newca

  CA.pl -newreq

  CA.pl -signreq

  CA.pl -pksc12 “My Test certificate”

DSA证书

  尽管CA.pl可以创建RSA  CAs,但它同时也能直接使用req命令创建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.pl -newca

  当提示输入CA文件名时输入cacert.pem

创建一个DSA证书请求和私钥

(可以选择性的先创建一组不同的参数集):

  Openssl req -out newreq.pem -newkey dsa:dsap.pem

为请求文件签名

  CA.pl -signreq

注意

  上面大多数的文件名在CA.pl脚本中可以修改。

  如果demoCA目录已经存在,则-newca命令并不会重写此目录,反而什么都不做。这可能发生在之前使用-newca选项时发生了异常终止。为了使其正确的运行,可删除已存在的demoCA目录。

  在某些环境下,可能不能直接运行CA.pl脚本(比如Win32),此时本地默认的配置文件可能是错的。在这种情况下可以运行如下命令:perl -s CA.pl去改变OPENSSL_CONF环境变量,使其指向“openssl.cnf”配置文件的正确路径。

  这个脚本的本意是为openssl编程的初学者准备的一个简单的前端程序。其功能有时并不总能满足我们的需求。想要获取更多的证书控制命令,可以直接调用openssl命令。

环境变量

  环境变量OPENSSL_CONF如果被定义为允许制定一个本地的可选配置文件,那么它应该包含配置文件的完整路径,而不是只是包含其目录。

1 0
原创粉丝点击