学习学习

《openssl 编程》之 openssl命令(4)

2007-11-15 22:45:18 / 个人分类:信息安全

32.25    crl2pkcs7

本命令根据CRL或证书来生成pkcs#7消息。

用法:

openssl  crl2pkcs7  [-inform PEM|DER ] [-outform PEM|DER ] [-in filename ] [-out filename ] [-certfile filename ] [-nocrl ]

选项:

       -inform PME|DER

              CRL输入格式,默认为PEM格式。

       -outform PME|DER

              pkcs#7输出格式,默认为PEM格式。

       -in filename

              指定CRL文件,不设置此项则从标准输入中获取。

       -out filename

              指定输出文件,不设置此项则输入到标准输出。

       -certfile filename

              指定证书文件,PEM格式的证书文件可以包含多个证书,此选项可以多次使用。

       -nocrl

不处理crl。一般情况下,输出文件中包含crl信息,设置此选项时,读取时忽略CRL信息,生成的信息不保护CRL信息。

       示例:

              openssl crl2pkcs7 -in crl.crl -out crlpkcs7.pem

openssl crl2pkcs7 -in crl.crl -certfile demoCA/ca cert.pem  -out crlcertpkcs7.pem

openssl crl2pkcs7 -in crl.crl -certfile demoCA/ca cert.pem  -out certpkcs7.pem –nocrl  上面生成的三个pkcs7文件包含的内容是不同的,crlpkcs7.pem只有crl信息;crlcertpkcs7.pem既有crl信息又有证书信息;certpkcs7.pem只有证书信息。

所以,不要被crl2pkcs7名字所迷惑,以为它只能将crl转换为pkcs7格式的信息。

32.26    errstr

       本命令用于查询错误代码。

用法:

       openssl errstr [-stats] <errno>

选项:

       -stats

              打印哈希表状态。

       errno

              错误号。

举例:

       用户输入:

       openssl req -config no.txt

       有如下错误信息:

       2220:error:02001002:system library:

       openssl errstr 02001002

       openssl errstr -stats 02001002

32.27 ocsp

在线证书状态工具。

用法:

openssl ocsp [-out file] [-issuer file] [-cert file] [-serial num] [-signer file] [-signkey file ] [-sign_other file ] [-no_certs] [-req_text] [-resp_text] [-text] [-reqout file] [-respout file] [-reqin file] [-respin file] [-nonce] [-no_nonce] [-url URL] [-host host:n] [-path] [-CApath dir] [-CAfile file] [-VAfile file] [-validity_period n] [-status_age n] [-noverify] [-verify_other file] [-trust_other] [-no_intern] [-no_signature_verify] [-no_cert_verify] [-no_chain] [-no_cert_checks] [-port num] [-index file] [-CA file] [-rsigner file] [-rkey file] [-rother file] [-resp_no_certs] [-nmin n] [-ndays n] [-resp_key_id] [-nrequest n]

选项:

       -out file

              指定输出文件,默认为标准输出。

       -issuer file

              指定当前颁发者证书,此选项可以用多次,file中的证书必须是PEM格式的。

       -cert file

              file指定的证书添加到OCSP请求中去。

       -serial num

将数字证书序列号添加到OCSP请求中去,num为证书序列号,0x开始表示是十六进制数据,否则是十进制数据,num可以是负数,前面用-表示。

       -signer file, -signkey file

OCSP请求签名时,分别指定证书和私钥;如果只设置-signer选项,私钥和证书都从-signer指定的文件中读取;如果不设置这两项,OCSP请求将不会被签名。

       -sign_other filename     

签名的请求中添加其他证书。

       -no_certs

              签名的请求中不添加任何证书。

       -req_text

              打印OCSP请求信息。

       -resp_text

              打印OCSP响应信息。

       -text

              打印OCSP请求或者响应信息。

       -reqout file

              指定DER编码的OCSP请求输出文件。

       -respout file

              指定DER编码的OCSP响应输出文件。

       -reqin file

              指定输入的DER编码的OCSP请求文件。

       -respin file

              指定输入的DER编码的OCSP响应文件。

       -nonce-no_nonce

              设置或不设置OCSP中的nonce扩展。

       -url URL

              指定OCSP服务的URL

-host host:n

              发送OCSP请求给服务,host为地址或域名n为端口号。

-path

              OCSP请求所用的路径。

-CApath dir

       可信CA文件目录,CA文件名请参考其他章节说明。

-CAfile file

              可信CA文件,file可以包含多个CA证书。

-VAfile file

指定受信任的OCSP服务的证书,file可以包含多个证书;等价于-verify_certs -trust_other选项。

       -validity_period n

设置OCSP响应中可接受的时间误差,n以秒为单位。默认可接受时间误差为5秒,OCSP认证中有关时间的说明请参考OCSP一章。

       -status_age n

如果OCSP响应中没用提供响应的失效时间,则说明马上可以获取到新的响应信息;此时需要检查起始时间是否比当前时间晚n秒;默认情况不做此操作。

       -noverify

              不验证OCSP响应的签名和nonce

       -verify_other file

              设置其他用于搜索OCSP响应者证书的文件。

       -trust_other

-verify_other指定的文件中包含了响应者的证书,用此选项时,不对响应者证书做额外的验证。当不能获取响应者证书的证书链或其根CA时,可用此选项,以保证验证能通过,即:使用了此选项后,verify_other所指定的OCSP服务者证书是可以信任的,即使那些证书有问题。

       -no_intern

不搜索OCSP响应者的证书,采用此选项时,OCSP响应者的证书必须在-verify_certs-VAfile中指定。

-no_signature_verify

              不验证响应者的签名,用于测试。

-no_cert_verify

              不验证响应者的证书,用于测试。

-no_chain

              不验证响应者证书链。

-no_cert_checks

              不验证响应者证书,不检查响应者是否有权来发布OCSP响应,用于测试。

-port num

              OCSP服务端口。

-index file

       指定证书状态索引文件。

-CA file

       指定CA证书。

-rsigner file

       指定用于签发OCSP响应的证书。

-rkey file

       指定用于签发OCSP响应的私钥文件。

-rother file

       将其他证书添加到OCSP响应中。

-resp_no_certs

       OCSP响应中不包含证书。

-nmin n

       距离下次更新时间,n以分钟为单位。

-ndays n

       距离下次更新时间,n以天为单位。

       -resp_key_id

              用响应者的私钥ID来标记OCSP响应,默认为响应者证书的持有者。

       -nrequest n

              OCSP服务最大响应个数,默认无限制。

       举例:

1)请先用reqca命令生成OCSP服务证书和私钥,下面的OCSP服务证书为ocspservercert.pemOCSP服务签名私钥为ocspserverkey.pem

       2)生成OCSP请求:

openssl ocsp -issuer demoCA/cacert.pem -cert cert.pem -cert -cert2.pem -reqout ocspreq.der

3)打印OCSP请求信息:

openssl ocsp -reqin ocspreq.der -text

4)启动OCSP服务:

openssl ocsp -ndays 1 -index demoCA/index.txt -port 3904 -CA demoCA/cacert.pem -text  -rkey ocspserverkey.pem -rsigner ocspservercert.pem

5)请求OCSP响应:

openssl ocsp -issuer demoCA/cacert.pem -url http://127.0.0.1:3904 -reqin ocspreq.der -VAfile ocspservercert.pem -respout resp.der

打印如下信息:

Response verify OK

或者:openssl ocsp -issuer demoCA/cacert.pem -url http://127.0.0.1:3904 -cert cert.pem -cert cert2.pem -VAfile ocspservercert.pem -respout resp.der

打印如下信息:

Response verify OK

cert.pem: unknown

        This Update: Mar  9 16:50:12 2007 GMT

        Next Update: Mar 10 16:50:12 2007 GMT

cert2.pem: revoked

        This Update: Mar  9 16:50:12 2007 GMT

        Next Update: Mar 10 16:50:12 2007 GMT

        Revocation Time: Mar  9 13:56:51 2007 GMT

5)  根据响应的文件来验证:

openssl ocsp -respin resp.der -VAfile ocspserverc ert.pem -text

32.28      pkcs12

pkcs12文件工具,能生成和分析pkcs12文件。

用法:

openssl pkcs12 [-export] [-chain] [-inkey filename] [-certfile filename] [-CApath arg] [-CAfile arg] [-name name] [-caname name] [-in filename] [-out filename] [-noout] [-nomacver] [-nocerts] [-clcerts] [-cacerts] [-nokeys] [-info] [-des] [-des3] [-aes128] [-aes192] [-aes256] [-idea] [-nodes] [-noiter] [-maciter] [-twopass] [-descert] [-certpbe alg] [-keypbe alg] [-keyex] [-keysig] [-password arg] [-passin arg] [-passout arg] [-rand file(s)] [-engine e]

选项:

       -export

              输出pkcs12文件。

       -chain

              添加证书链。

       -inkey filename

              指定私钥文件,如果不用此选项,私钥必须在-in filename中指定。

       -certfile filename

              添加filename中所有的文件。

       -CApath arg

              指定CA文件目录。

       -CApath arg

              指定CA文件。

       -name name

              指定证书和私钥的友好名。

       -caname name

              指定CA友好名,可以多次使用此选项。

       -in filename

              指定私钥和证书读取的文件,必须为PEM格式。

       -out filename

              指定输出的pkcs12文件,默认为标准输出。

       -noout

              不输出信息。

       -nomacver

              读取文件时不验证MAC

       -nocerts

              不输出证书。

       -clcerts

              只输出客户证书,不包含CA证书。

       -cacerts

              只输出CA证书,不包含CA证书。

       -nokeys

              不输出私钥。

       -info

              输出pkcs12结构信息。

       -des3-aes128 -aes192[-aes256[-idea

              私钥加密算法;。

       -nodes

              不对私钥加密。

       -noiter

              不多次加密。

       -maciter

              加强完整性保护,多次计算MAC

       -twopass

              需要用户分别指定MAC口令和加密口令。

       -descert

              3DES加密pkcs12文件,默认为RC2-40

       -certpbe alg

              指定证书加密算法,默认为RC2-40

       -keypbe alg

              指定私钥加密算法,默认为3DES

       -keyex

              设置私钥只能用于密钥交换。

       -keysig

              设置私钥只能用于签名。

       -password arg

              指定导入导出口令来源。

-passin arg

       输入文件保护口令来源。

-passout arg

       指定所有输出私钥保护口令来源。

-rand file(s)

指定随机数种子文件,多个文件间用分隔符分开,windows用“;”,OpenVMS用“,“,其他系统用“:”。

       -engine e

              指定硬件引擎。

       举例:

1)生成pkcs12文件,但不包含CA证书:

openssl pkcs12 -export -inkey ocspserverkey.pem -in ocspservercert.pem  -out ocspserverpkcs12.pfx

2)  生成pcs12文件,包含CA证书:

openssl pkcs12 -export -inkey ocspserverkey.pem -in ocspservercert.pem -CAfile demoCA/cacert.pem -chain -out ocsp1.pfx

3)  pcks12中的信息分离出来,写入文件:

openssl pkcs12 –in ocsp1.pfx -out certandkey.pem

4)  显示pkcs12信息:

openssl pkcs12 –in ocsp1.pfx -info

32.29 pkcs8

pkcs8格式的私钥转换工具。

用法:

openssl pkcs8 [-inform PEM|DER] [-outform PEM|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-topk8] [-noiter] [-nocrypt] [-nooct] [-embed] [-nsdb] [-v2 alg] [-v1 alg] [-engine id]

选项:

        -inform PEM|DER

              输入文件格式。

       -outform PEM|DER

              输出文件格式。

       -in filename

              输入文件。

       -passin arg

              输入文件口令保护来源。

       -out filename

              指定输出文件。

       -passout arg

              输出文件口令保护来源。

-topk8

       输出pkcs8文件。

-noiter

       MAC保护计算次数为1

-nocrypt

       加密输入文件,输出的文件不被加密。

-nooct

       不采用八位组表示私钥。

-embed

       采用嵌入式DSA参数格式。

-nsdb

       采用Netscape DBDSA格式。

-v2 alg

       采用PKCS#5 v2.0,并指定加密算法,可以是desdes3rc2,推荐des3

-v1 alg

       采用PKCS#5 v1.5pkcs12,并指定加密算法,可采用算法包括:

PBE-MD2-DESPBE-MD5-DESPBE-SHA1-RC2-64PBE-MD2-RC2-64PBE-MD5-RC2-64PBE-SHA1-DESPBE-SHA1-RC4-128PBE-SHA1-RC4-40PBE-SHA1-3DESPBE-SHA1-2DESPBE-SHA1-RC2-128PBE-SHA1-RC2-40

       -engine i

              指定硬件引擎。

       示例:

1)  将私钥文件转换为pkcs8文件:

openssl pkcs8 -in ocspserverkey.pem -topk8 -out ocspkcs8key.pem

2)  pkcs8中的私钥以明文存放:

openssl pkcs8 -in ocspserverkey.pem -topk8  -nocrypt -out ocspkcs8key.pem


TAG: openssl openssl命令 信息安全

我来说两句

-5 -3 -1 - +1 +3 +5

Open Toolbar