数字证书申请和生成工具。也可以为根CA自行签署证书。

该命令中很多值、属性、格式或默认值都在config文件openssl.cnf中指定。

[root@xuexi ~]# man req

NAME

req - PKCS# certificate request and certificate generating utility.

SYNOPSIS

openssl req [-inform PEM|DER] [-outform PEM|DER] 

[-in filename]

 [-passin arg] 

[-out filename]

 [-passout arg] 

[-text] [-pubkey] [-noout] [-verify]

 [-modulus] 

[-new]

[-rand file(s)] 

[-newkey rsa:bits]

 [-newkey alg:file] 

[-nodes][-key filename]

 [-keyform PEM|DER]

[-keyout filename]

 [-keygen_engine id] 

[-[digest]] [-config filename]

 [-subj arg] [-multivalue-rdn]

[-x509] [-days n] [-set_serial n]

 [-asn1-kludge] [-no-asn1-kludge] [-newhdr] 

[-extensions section][-reqexts section]

 [-utf8] [-nameopt] [-reqopt] 

[-subject] [-subj arg] [-batch]

 [-verbose] [-engine id]

DESCRIPTION

The req command primarily creates and processes certificate requests  format. It can additionally create self signed certificates for use as root CAs for example.

-in filename:指定证书请求的输入文件filename,即该文件是用于签名的证书请求文件。当指定创建证书请求选项-new或-newkey时该选项失效,因为创建证书请求不需要请求文件

-out filename:证书请求或自签名证书的输出文件,不指定时默认stdout

-text:以文本行书打印证书请求

-noout:不输出关于部分信息,关于noout的用法,请参看http://www.cnblogs.com/f-ck-need-u/p/6090833.html中关于-noout的示例,他们的用法是一样的

-verify:验证请求中的签名

【证书请求有关项:】

-subject:打印请求信息主题(如果指定了x509则打印证书信息主题)

-subj args:替换或自己指定证书请求时需要输入的信息,并输出修改后的请求信息。args的格式为“/type0=value0/type1=value1/type2=...”,如果有空格也将被计入值,如果不想填写这些信息,value部分使用点“.”即可保留空白,但是如果直接敲回车键将是使用配置文件中的默认值。其中其中可识别名称(man req中指定的)有:C是Country、ST是state、L是localcity、O是Organization、OU是Organization Unit、CN是common name、emailAddress是email

-new:创建一个证书请求,会交互式让你输入一些信息,这些交互选项以及交互选项信息的长度值以及其他一些扩展属性在配置文件(其中主配置文件为openssl.cnf,还有些辅助配置文件)中指定了默认值。

如果没有指定-key选项,则会自动生成一个RSA私钥,该私钥的生成配置也在openssl.cnf中指定了。

证书请求及自签署证书有关项:

-newkey args:创建一个新的证书请求,并创建私钥,类似于-new选项。args的格式是rsa:numbit(其他加密算法请查看man),其中numbit是rsa密钥的长度,如果numbit省略了(即-newkey rsa),则长度更具openssl.cnf中default_bits指定的值作为默认长度,默认该值为2048

-key filename:指定私钥的输入文件,证书请求签名时需要

-keyout filename:指定新创建的私钥存放位置,若没有指定该选项,则使用openssl.cnf中的default_keyfile指定的值,默认该值为privkey.pem

-nodes:默认新创建私钥会被加密,指定该选项后创建的私钥将不被加密

-pubkey:输出公钥

-[dgst]:指定对请求进行签名时的单向加密算法,如-md5/-sha1/-sha512等,如果不指定这使用openssl.cnf中default_md指定的值,默认该值为sha1

-x509:指定该选项将输出一个自签名数字证书,而不是创建证书请求。一般用于测试或者根CA创建自签名证书。

-days n:指定自签名证书的有效期限,默认30天,需要和-x509一起使用。注意是自签名证书期限,而非请求的证书期限,openssl.cnf中的default_days指定了请求证书的有效期限,默认365天。

-set_serial n:指定生成自签名证书时的证书序列号,该序列号将写入openssl.cnf中serial指定的文件中,这样就不需要手动向该序列号文件写入值了。支持数值和16进制值(0x开头),虽然也支持负数,但不建议。

配置文件项和杂项:

-config filename:指定req的配置文件,指定后将忽略所有的其他配置文件。如果不指定则默认使用openssl.cnf中的req段落的值

-batch:非交互模式,直接从openssl.cnf中读取证书请求所需字段信息。但若不指定-key仍会询问key

-verbose:显示操作执行的详细信息

openssl.cnf中关于req段落的配置格式

input_password和output_password:密码的输入和输出文件,与命令行的-passin和-passout选项对应,默认未指定。

default_bits:证书申请时生成的RSA密钥长度,不写时默认是512,命令行的-new选项会用到它,-newkey可能会用到也可能会忽略该选项。

default_keyfile:默认的私钥输出文件,与命令行的-keyout选项对应。

encrypt_key:当设置为no时,创建新私钥时不会加密该私钥。设置为no时与命令行的-nodes等价。还有等价的兼容性写法:encry_rsa_key。

default_md:指定对证书请求进行签名时的单向加密算法,默认为md5,与命令行的-[dgst]对应。

prompt:当指定为no时,则不提示输入证书请求的字段信息,而是直接从openssl.cnf中读取。请小心设置该选项,经个人测试,尽管设置了DN的所有默认值以及其他一些默认值,创建证书请求时还是出错。所以建议将此设置注释掉或者设置为yes。

distinguished_name:(DN)是一个扩展属性段落,用于指定证书请求时可被识别的字段名称。

以下是openssl.cnf中默认的配置文件格式及值:更多关于配置项请看:http://www.cnblogs.com/f-ck-need-u/p/6091027.html

[ req ]

default_bits = 

default_md = sha1

default_keyfile = privkey.pem

distinguished_name = req_distinguished_name

attributes = req_attributes

x509_extensions = v3_ca # The extentions to add to the self signed cert

string_mask = utf8only

[ req_distinguished_name ]

countryName = Country Name ( letter code)

countryName_default = XX

countryName_min = 

countryName_max = 

stateOrProvinceName = State or Province Name (full name)

localityName = Locality Name (eg, city)

localityName_default = Default City

.organizationName = Organization Name (eg, company)

.organizationName_default = Default Company Ltd

organizationalUnitName = Organizational Unit Name (eg, section)

commonName = Common Name (eg, your name or your server\'s hostname)

commonName_max = 

emailAddress = Email Address

emailAddress_max = 

8.openssl req的更多相关文章

  1. openssl req(生成证书请求和自建CA)

    伪命令req大致有3个功能:生成证书请求文件.验证证书请求文件和创建根CA.由于openssl req命令选项较多,所以先各举几个例子,再集中给出openssl req的选项说明.若已熟悉openss ...

  2. openssl req 证书请求及自签名证书

    介绍 openssl req 用于生成证书请求,以让第三方权威机构CA来签发,生成我们需要的证书.req 命令也可以调用x509命令,以进行格式转换及显示证书文件中的text,modulus等信息.如 ...

  3. Openssl req命令

    一.简介 req指令用来创建和处理PKCS#10格式的证书 二.语法 openssl req [-inform PEM|DER] [-outform PEM|DER] [-in filename] [ ...

  4. (11) openssl req(生成请求证书、私钥和自建CA)

    伪命令req大致有3个功能:生成证书请求文件.验证证书请求文件和创建根CA. 由于openssl req命令选项较多,所以先各举几个例子,再集中给出openssl req的选项说明.若已熟悉opens ...

  5. openssl req(生成证书请求和自建CA)(转)

    openssl req(生成证书请求和自建CA)     伪命令req大致有3个功能:生成证书请求文件.验证证书请求文件和创建根CA.由于openssl req命令选项较多,所以先各举几个例子,再集中 ...

  6. (转)openssl 命令: openssl req 命令详解

                                      openssl req命令主要的功能有,生成证书请求文件, 查看验证证书请求文件,还有就是生成自签名证书.本文就主要记录一下open ...

  7. openssl 证书请求和自签名命令req详解

    1.密钥.证书请求.证书概要说明 在证书申请签发过程中,客户端涉及到密钥.证书请求.证书这几个概念,初学者可能会搞不清楚三者的关系,网上有的根据后缀名来区分三者,更让人一头雾水.我们以申请证书的流程说 ...

  8. OpenSSL命令---req

    用途: 本指令用来创建和处理PKCS#10格式的证书.它还能够建立自签名证书,做Root CA. 用法: openssl req [-inform PEM|DER] [-outform PEM|DER ...

  9. openssl 证书请求和签名命令req基本分析

    一 基本概念: OpenSSL 是一个开源项目,其组成主要包括一下三个组件: openssl:多用途的命令行工具 libcrypto:加密算法库 libssl:加密模块应用库,实现了ssl及tls o ...

随机推荐

  1. UICollectionView的使用小记录和一些说明

    // // MallTestViewController.h // fitmiss // // Created by bill on 16/6/28. // Copyright © 2016年 lea ...

  2. SQL:实现流水账的收入、支出、本期余额

    有多组数据,分别是收入,支出,余额,它们的关系是:本期余额=上次余额+收入-支出 /* 测试数据: Create Table tbl([日期] smalldatetime,[收入] int ,[支出] ...

  3. Oracle 违反协议 OALL8 处于不一致状态

    http://blog.sina.com.cn/s/blog_a45aac720100yu3h.html ERROR-util.JDBCExceptionReporter>: 违反协议ERROR ...

  4. 使用PowerDesigner把oom设计图导出jpg格式的图片

    1: 按住Shift键点击鼠标选择要导出的对象,必须先选择. 2: 选择Edit—>Export Image 到出你需要的格式,如下图

  5. Study plan for automation test framework

    虽然部门的automation建立起来有两年多,去年项目一直很忙,仅限于应用(e.g 运行脚本测试或者写一些简短的测试脚本),但是一直没有深入研究其组成框架.近期希望抽出时间来做深入学习. 初步计划从 ...

  6. sql-分组排序

    我们有一张数据表,需要按照[类别]分组按照[时间]排序,并分组显示各自的序号. 表Archive ArchiveId varchar(30) 文章编号非数字 CategoryId int 文章分类Id ...

  7. lighttpd配置

    1.lighttpd.conf server.modules = ( "mod_access", "mod_alias", "mod_compress ...

  8. SQL存储过程-新增和修改,参数Xml数据类型

    输入参数:xml数据类型  功能:新增和修改  --value() 方法从 XML 中检索 rogue 属性值.然后将该值分配给 int 变量. --将 Member 节点拆分成多行 SELECT T ...

  9. 如何保护.net中的dll文件(防破解、反编译)

    如何保护.net中的dll文件(防破解.反编译) 2010-07-19 15:08 [小 大] 来源: 赛迪网 评论: 0 分享至:      百度权重查询 词库网 网站监控 服务器监控 SEO监控  ...

  10. 转载:ActiveMQ的可靠性机制

    1.JMS消息确认机制 JMS消息只有在被确认之后,才认为已经被成功地消费了.消息的成功消费通常包含三个阶段:客户接收消息.客户处理消息和消息被确认.在事务性会话中,当一个事务被提交的时候,确认自动发 ...