openssl命令分类(最完整) 下载本文

内容发布更新时间 : 2024/5/20 12:48:52星期一 下面是文章的全部内容请认真阅读。

声明:

1.此文档中,证书生成时口令、密码一律是:12345.方便排查;

2.另外,所有命令均可在Openssl在线文档中查询; 3.本文档,支持命令检索,所有命令首字母大写;

一、证书类

1.1证书申请:Req

1)Req

生成和处理PKCS10证书,证书申请文件; 用法:

Openssl req [-inform PEM|DER ] [-in filenames] [-passin arg] [-config filename] [batch] [-newkey rsa:bits] [-new] [-rand file:rand dat] [-text] [-days] [-x509]

[-subj arg /CN=china/OU=tt/O=ab/CN=fxx] [-utf8] [-noout] [-keyout] [-pubkey] 其中,

-inform 指定输入格式;

-newkey rsa:bits 用于生成新的rsa密钥以及证书请求;默认名称为privkey.pem; -new 生成新的证书请求以及私钥,默认1024bits -rand 随机数种子文件;-rand file: rand.dat;

-config file 指定证书请求模板,默认为openssl.cnf;

-subj arg 制定证书请求的用户信息;不指定,则要求输入;-subj /CN=cn/OU=t/O=a; -utf8 指定为utf8,默认为ASCII编码;

-batch 不询问用户请求;

-newhdr 在生成的PEM证书请求文件头尾包含NEW字样;有些CA需要; -pubkey 获取证书请求中的公钥信息; -modulus 输出请求中的模数; -text 打印证书信息; -verify 验证证书请求; -x509 生成自签名证书;

-md5/4/2/sha1/mdc2 生成自签名证书时,指定摘要算法; -days 生成自签名证书的有效期; 例子:

#生成证书申请和私钥 > req -new -batch -out myreq.pem

#只有-new需要输入subj等;加入-batch则不

需要输入;

> req -newkey rsa:1024 -out myreq1.pem -keyout reqkey.pem > req -new -subj /CN=china/OU=tt/O=ab/CN=dzr #查看公钥信息;可见其中包含证书请求; > > > >

req req req req

-in myreq.pem -pubkey -out pubkey.pem -in myreq.pem -pubkey -text -in myreq.pem -text

-in myreq.pem -modulus #所谓模数 -in pubkey.pem -modulus

> req

> req -in pubkey.pem -text #生成自签名证书 >

req -in myreq.pem -x509 -key reqkey.pem -out mycert.pem -days 300 -text -md5

1.2消息格式:PKCS7

1)pkcs7

加密消息语法,各种消息存放的格式标准;包括数据、签名、摘要、数字信封等; 用于处理DER或者PEM格式的pkcs7文件 用法:

Openssl pkcs7 [-inform PEM][-outform] [-in ][-print_certs][-text][noout] 其中,

-print_certs 打印证书或CRL,每行打出持有者和颁布者; -text 打印相关信息; 例子:

#没有pkcs7文件,可通过crltopkcs7生成;

Openssl> Openssl>

pkcs7 -in myreq.pem -outform DER -out myreq_pkcs7.der pkcs7 -in file.pem print_certs -out certs.pem

1.3 个人证书:PKCS12

1)pkcs12

工具,用于生成和分析pkcs12文件 用法:

Openssl pkcs12 [export][ chain][inkey][cedrtfile][CApath][CAfile][name][out] [aes128][des3][password][rand] 其中,

-export 输出pkcs12文件; -chain 添加证书链;

-inkey 指定私钥文件;

-certfile file添加file中所有证书文件; -CApath arg 指定CA文件目录; -CAfile arg 指定CA文件;

-name 指定证书和私钥的友好名;

-in 指定私钥和证书读取的文件,为PEM格式; -out 指定输出的pkcs12文件,默认为标准输出; -nomacver 读取时不验证MAC;

-clcerts 只输出客户证书,不包含CA证书; -nokeys 不输出私钥; -info 输出pkcs12结构信息; -des3/ase128 私钥加密算法;

-nodes 不对私钥加密;

-maciter 加强完整性保护,多次计算MAC; -descert 用3DES加密pkcs12文件,默认RC2-40; -keysig 设置私钥只能用于签名; 例子:

#生成pkcs12,不带CA证书

> pkcs12 -export -inkey reqkey.pem -in mycert.pem -out mypkcs12.pfx

> pkcs12 -export -inkey CA_key.pem -in CAreq_cert.pem -out myPkcs12.pfx #生成,带CA证书

> pkcs12 -export -inkey CA_key.pem -in CAreq_cert.pem -CAfile ../cacert.pem -chain -out ocsp1.pfx

#信息分离出来写入文件; >

pkcs12 -in myPkcs12.pfx -out certandkey.pem

#显示pkcs12信息 >

pkcs12 -in myPkcs12.pfx -info

1.3 转换证书:PKCS8

10.pkcs8

私钥转换工具,pkcs8格式 用法:

Openssl pkcs8 [inform ][outform][in ][passin][out][topk8][noiter][v2][embed] 其中,

-topk8 输出pkcs8文件; -noiter MAC保护计算次数为1; -nooct 不采用8位组表示私钥;

-embed 采用嵌入式DSA 参数格式;

-v2 alg 采用PKCS5 v2.0 并指定加密算法;

例子:

#私钥转换为pkcs8文件;比较前后文件内容,的确不同的格式; Openssl>

pkcs8 -in CA_key.pem -topk8 -out mypkcs8key.pem