数字证书申请和生成工具。也可以为根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. [LeetCode] 14. Longest Common Prefix

    Write a function to find the longest common prefix string amongst an array of strings. public class ...

  2. terminator 安装及使用

    1. 安装 $ sudo apt-get install terminator 2. 右键设置首选项 背景设置为0.8透明度, 字体挤在一起:在ubuntu下请选择mono后缀的字体就可以了 3. 使 ...

  3. Windows下Python连接数据库(mysql, mongodb)

    一 实验平台 1 os: win7 64位旗舰版sp1 2 python: 2.7.10 x64 二 连接数据库 1 连接 mysql数据库 (1)下载mysql(5.6.25-winx64) 建议下 ...

  4. Java File.renameTo方法的问题

    今天发现一个问题,renameTo执行失败. 程序是这样的:一个小程序在执行完成时会将A目录的文件renameTo到B目录,该程序一直运行正常.今天将B目录进行了mount挂载(Linux上),挂载后 ...

  5. .net MVC3 页面和 action 传值问题

    一.ViewData ViewData ViewBag 的特点和使用场景比较 1.  TempData:类型是字典的键值对结构 特点:值只能取一次.保存在Session中,Controller每次执行 ...

  6. Erlang 参考资料

    Erlang 官方文档 Distributed Erlang Erlang 教程中文版 %设定模块名 -module(tut17). %导出相关函数 -export([start_ping/1, st ...

  7. Xilinx FPGA全局时钟和全局时钟资源的使用方法

    对FPGA的全局时钟了解不多,遂转载一篇文档: http://xilinx.eetop.cn/?action-viewnews-itemid-42 目前,大型设计一般推荐使用同步时序电路.同步时序电路 ...

  8. 十一、Manipulators

    1. Manipulators是可以用三维进行绘制的的节点,可以将用户行为值化,对其他节点的属性进行modify. 2. 属性值可以通过Channel Box 和Graph Editor进行修改.同其 ...

  9. js解决IE不支持数组的indexOf()方法

    if (!Array.indexOf) {                                    Array.indexOf = function (obj) {            ...

  10. Git self-learning

    ---恢复内容开始--- 使用后的总结 git config --global user.name "" #设置和查看用户名git config --global user.ema ...