数字证书申请和生成工具。也可以为根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. python3-day2-python基础2

    一.for循环 for循环是我们编程中非常常用的一种循环,以下就是for循环在python中的一些应用实例: 1.单层for循环 #!/usr/bin/env python3#-*- coding: ...

  2. 承接Unity3D外包公司 — 技术分享

    Cardboard SDK for Unity的使用 上一篇文章作为系列的开篇,主要是讲了一些虚拟现实的技术和原理,本篇就会带领大家去看一看谷歌的Cardboard SDK for Unity,虽然目 ...

  3. C#程序以管理员身份运行

    选中"Security",在界面中勾选"Enable ClickOnce Security Settings"后,在Properties下就有自动生成app.m ...

  4. hadoop2升级的那点事情(详解)

    前言 前阵子,公司的hadoop从hadoop1.02升级到hadoop2.4.1,记录下升级的步骤和遇到的问题,和大家分享,希望别人可以少走一些弯路 技术选型 当前使用版本:     apache ...

  5. Ehcache和Spring整合

    Ehcache是使用Java编写的缓存框架,比较常用的是,整合在Hibernate和MyBatis这种关系型数据库持久框架. 不过现在用NoSQL也比较盛行,要应用Ehcache,整合起来就没法按照那 ...

  6. linux c 获取头文件函数getenv

    #include <stdio.h>#include <stdlib.h> int main(){ printf("%s\n", getenv(" ...

  7. css不常用重要属性

    超出省略号:display:block;white-space:norwrap;overflow:hidden;text-overflow:ellipsis; white-space:norwrap/ ...

  8. OJ提交题目中的语言选项里G++与C++的区别(转)

    G++? 首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编译器中编译C++程序的命令而已. 那么他们之间的区别是什么? 在提交题目中的语言选项里,G++和C++都代表编译的方式. ...

  9. selenium处理极验滑动验证码

    要爬取一个网站遇到了极验的验证码,这周都在想着怎么破解这个,网上搜了好多知乎上看到有人问了这问题https://www.zhihu.com/question/28833985,我按照这思路去大概实现了 ...

  10. Oracle Hang分析--转载

    1. 数据库hang的几种可能性 oracle 死锁 或者系统负载非常高比如cpu使用或其他一些锁等待很高都可能导致系统hang住,比如大量的DX锁. 通常来说,我们所指的系统hang住,是指应用无响 ...