《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)请先用req和ca命令生成OCSP服务证书和私钥,下面的OCSP服务证书为ocspservercert.pem,OCSP服务签名私钥为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 DB的DSA格式。
-v2 alg
采用PKCS#5 v2.0,并指定加密算法,可以是des、des3和rc2,推荐des3。
-v1 alg
采用PKCS#5 v1.5或pkcs12,并指定加密算法,可采用算法包括:
PBE-MD2-DES、PBE-MD5-DES、PBE-SHA1-RC2-64、PBE-MD2-RC2-64、PBE-MD5-RC2-64、PBE-SHA1-DES、PBE-SHA1-RC4-128、PBE-SHA1-RC4-40、PBE-SHA1-3DES、PBE-SHA1-2DES、PBE-SHA1-RC2-128和PBE-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
相关阅读:
- 《openssl 编程》之 ssl实现 (forxy, 2007-11-15)
- 《openssl 编程》之 openssl命令(1) (forxy, 2007-11-15)
- 《openssl 编程》之 openssl命令(2) (forxy, 2007-11-15)
- 《openssl 编程》之 openssl命令(3) (forxy, 2007-11-15)
推荐 收藏 导入论坛 等级(0) 编辑 管理 查看(329) 评论(0) 评分(0/0)