OpenSSL req命令使用说明

2019-06-08 0 By admin

本指令用来创建和处理PKCS#10格式的证书。它还能够建立自签名证书,做Root CA。

用法:


openssl  req [-inform PEM|DER] [-outform PEM|DER] [-in filename] [-out filename] [-text] [-pubkey] 
[-noout] [-verify] [-modulus] [-nodes] [-subject] [-passin arg] [-passout arg] [-key filename] 
[-keyform PEM|DER] [-keyout filename] [-rand file(s)] [-newkey rsa:bits] [-newkey dsa:file] [-newkey ec:file] 
[-digest] [-config filename] [-subj arg] [-multivalue-rdn] [-new] [-batch] [-x509] [-days n] [-set_serial n] 
[-newhdr][-asn1-kludge][ -no-asn1-kludge][-extensions section] [-reqexts section] [-utf8] [-nameopt option] 
[-reqopt option][-verbose] [-engine id] 

选项说明:

1、-inform PEM|DER
输入文件格式,DER或者PEM格式。DER格式采用ASN1的DER标准格式。一般用的多的都是PEM格式,就是base64编码格式。

2、-outform DER|PEM
输出文件格式,DER或者PEM格式。

3、-in filename
输入的证书请求文件,默认为标准输入。只有-new和-newkey俩个选项没有被设置,本选项才有效。

4、-out filename
输出证书请求文件,默认为标准输出。

5、-text
将CSR文件里的内容以可读方式打印出来。

6、-pubkey
打印出公钥值。

7、-noout
不打印参数编码的版本信息。

8、-verify
验证请求信息中的签名信息值。

9、-modulus
输出证书请求文件的模数值。

10、-nodes
如果该选项被指定,如果私钥文件已经被创建则不用加密。

11、-subject
打印出请求信息中申请者的信息值(如果-x509被指定,则是证书申请者的信息值)。

12、-passin arg
指定私钥口令来源。

13、-passout arg
输出文件口令保护存放方式。

14、-key filename
证书私钥文件的来源。允许该文件的格式是PKCS#8。

15、-keyform PEM|DER
私钥文件的格式,一般默认为PEM。

16、-keyout filename
指明创建的新的私有密钥文件的文件名。如果该选项没有被设置,,将使用config文件里面指定的文件名。

17、-rand file(s)
指定随机数种子文件,多个文件间用分隔符分开,windows用“;”,OpenVMS用“,“,其他系统用“:”。

18、-newkey rsa:bits
用于生成新的rsa密钥以及证书请求。如果用户不知道生成的私钥文件名称,默认采用privkey.pem,生成的证书请求。如果用户不指定输出文件(-out),则将证书请求文件打印在屏幕上。生成的私钥文件可以用-keyout来指定。生成过程中需要用户输入私钥的保护口令以及证书申请中的一些信息。

19、-newkey dsa:file
用file中的dsa密钥参数来产生一个DSA密钥。

20、-newkey ec:file
用file中的密钥参数来产生一个EC密钥。

21、-digest
指明签发的证书使用什么哈希算法。如果没有被设置,将使用config文件里的相应item的设置。但DSA的CSR将忽略这个选项,而采用SHA1哈希算法。

22、-config filename
使用的config文件的名称。本选项如果没有设置,将使用缺省的config文件。配置的写法可以参考openssl.cnf,其中有关于生成证书请求的设置。

23、-subj arg
用于指定生成的证书请求的用户信息,或者处理证书请求时用指定参数替换。生成证书请求时,如果不指定此选项,程序会提示用户来输入各个用户信息,包括国名、组织等信息,如果采用此选择,则不需要用户输入了。比如:-subj /CN=china/OU=test/O=abc/CN=forxy,注意这里等属性必须大写。

24、-multivalue-rdn
当采用-subj arg选项时,允许多值rdn名,比如arg参数写作:/CN=china/OU=test/O=abc/UID=123456+CN=forxy。

25、-new
本选项产生一个新的CSR,它会要用户输入创建CSR的一些必须的信息。至于需要哪些信息,是在config文件里面定义好了的。如果-key没有被设置,,那么就将根据config文件里的信息先产生一对新的RSA密钥值。

26、-batch
不询问用户任何信息(私钥口令除外),采用此选项生成证书请求时,不询问证书请求当各种信息。

27、-x509
本选项将产生自签名的证书。一般用来错测试用,或者自己玩下做个Root CA。证书的扩展项在 config文件里面指定。

28、-days n
指定自签名证书的有效期限。默认为30天。

29、-set_serial n
设置生成证书的证书序列号,比如 -set_serial 100或 -set_serial 0x100。

30、-newhdr
在CSR问的第一行和最后一行中加一个单词”NEW”,有的软件(netscape certificate server)和有的CA就有这样子的怪癖嗜好。如果那些必须要的选项的参数没有在命令行给出,那么就会到config文件里去查看是否有缺省值。

31、-asn1-kludge
缺省的req指令输出完全符合PKCS10格式的CSR,但有的CA仅仅接受一种非正常格式的CSR,这个选项的设置就可以输出那种格式的CSR。要解释这俩种格式有点麻烦,需要用到ASN1和PKCS的知识,而且现在这样子怪的CA几乎没有,所以省略解释。

32、-no-asn1-kludge
不输出特定格式的CSR。

33、-extensions section、-reqexts section
这俩个选项指定config文件里面的与证书扩展和证书请求扩展有关的俩个section的名字(如果-x509这个选项被设置)。这样你可以在config文件里弄几个不同的与证书扩展有关的section,然后为了不同的目的给CSR签名的时候指明不同的section来控制签名的行为。

34、-utf8
输入字符为utf8编码,默认输入为ASCII编码。

35、-nameopt option
该选项决定颁发者信息值和申请者信息值怎样显示。Option可以由一个组成也可以由多个组成(需要用逗号隔开)。

36、-reqopt option
该选项决定CSR的输出格式,与text选项一起使用。Option可以由一个组成也可以由多个组成(需要用逗号隔开)。

37、-verbose
打印附加信息值。

38、-engine id
硬件引擎。