澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

澳门新萄京官方网站openssl签署和自签署证书的多

2019-12-01 作者:澳门新萄京官方网站   |   浏览(177)

openssl连串文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html**

SSL(Secure Socket Layer,保险套接字层)是为互联网通讯提供安全保证和数据完整性的生龙活虎种安全磋商,由Netscape集团研发。SSL合同坐落于互联网的应用层和传输层之间,它选拔来自上层互联网应用层合同(如http、ftp)的数目报文,并将其再叁次开展打包、加密,再传递给下层互联网传输层合同(如tcp、udp)。该公约提供的劳动首要有:



a、数据来源可靠性:一次互联网连接中的顾客端和服务器都会被证实是或不是是对方所期望连接的主机。确认保障数据将被科学地发送至顾客端和服务器。

正文目录:

伪命令req差非常的少有3个功用:生成证书诉求文件、验证证书诉求文件和创办根CA。由于openssl req命令选项超级多,所以先各举多少个例子,再汇总给出openssl req的选项表达。若已熟稔openssl req和证件央求相关文化,可径直跳至后文查看openssl req选项收拾,若面生,建议此前向后一步一步阅读。

b、数据机密性:数据在发送以前被加密,保障其在网络传输进度中,不会被盗取。

1.1 接纳自定义配置文件的达成方式

先是表明下生成证书诉求必要什么样:申请者须要将自身的音信及其公钥放入证书乞请中。但在实操进度中,所急需提供的是私钥而非公钥,因为它会自动从私钥中领取公钥。其它,还索要将提供的多少开展数字具名(使用单向加密卡塔尔(英语:State of Qatar),有限支撑该证件央浼文件的完整性和生龙活虎致性,幸免别人盗窃后展开曲解,比如红客将为www.baidu.com所申请的注脚要求文件中的集团名改成对方的商铺名称,要是能够点窜成功,则签定该证件伏乞时,所揭露的证件新闻中校成为外人新闻。

c、数据完整性:数据在收取之后,接受端主机会依照数量的特征码以验证数据的完整性,保险其在网络传输进程中,不会被点窜。

1.2 接收暗中认可配置文件openssl.cnf的落真实景况势

澳门新萄京官方网站 1

就SSL提供的如上服务中,以多少来源可信赖性最为主要。SSL选用非对称加密算法(如奥德赛SA)来确认保证网络中互联双方的诚笃。互联双方各装有风姿洒脱对密钥,公私钥。个中公钥是当面包车型地铁,网络中的任什么人都足以收获其余主机或客户的公钥,而只是私钥是保密的。且公钥是从其对应私钥中领到出来的。对于公钥加密的文本,仅能透过其对应的私钥解密,因此便保障了多少的机密性。对于私钥加密的文书,仅能经过其相应的公钥解密,由此便保障了数码出自的可信性。


为此率先步就是先创建出私钥pri_key.pem。其实私钥文件是非必不可缺的,因为openssl req在急需它的时候会自动创造在特定的门路下,此处为了举个例子表明,所以创制它。

openssl就是SSL的多个开源达成。本文后续内容将简介怎么着用openssl进行加解密、提取数额特征码、生成密钥,以至改造数字证书央求、创造私有CA和签发数字证书。

1.1 选用自定义配置文件的贯彻方式

[root@xuexi tmp]# openssl genrsa -out pri_key.pem

1.自建CA

自建CA的机制:1.生成私钥;2.创建证书央求;3.行使私钥对证件诉求签字。

出于测验境况,所以自行建造的CA只好是根CA。所运用的配备文件如下。

[default]
name = root-ca    /* 变量*/
default_ca = CA_default
name_opt = ca_default
cert_opt = ca_default

[CA_default]
home = .     /* 变量*/
database = $home/db/index
serial = $home/db/serial
crlnumber = $home/db/crlnumber
certificate = $home/$name.crt
private_key = $home/private/$name.key
RANDFILE = $home/private/random
new_certs_dir = $home/certs
unique_subject = no
copy_extensions = none
default_days = 3650
default_crl_days = 365
default_md = sha256
policy = policy_to_match

[policy_to_match]
countryName = match
stateOrProvinceName = optional
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional

[CA_DN]
countryName = "C"
contryName_default = "CN"
organizationName = "O"
organizationName_default = "jmu"
commonName = "CN"
commonName_default = "longshuai.com"

[req]
default_bits = 4096
encrypt_key = no
default_md = sha256
utf8 = yes
string_mask = utf8only
# prompt = no  /* 测试时该选项导致出错,所以将其注释掉*/
distinguished_name = CA_DN
req_extensions = ca_ext

[ca_ext]
basicConstraints = critical,CA:true
keyUsage = critical,keyCertSign,cRLSign
subjectKeyIdentifier = hash

(1卡塔尔.依据私钥pri_key.pem生成叁个新的证件乞请文件。此中"-new"表示新生成三个新的表明央浼文件,"-key"钦命私钥文件,"-out"内定输出文件,此处输出文件即为证书央浼文件。

1、利用openssl实行加解密

openssl enc -ciphername [-in filename] [-out filename] [-e] [-d] ...

-ciphername钦定加密算法,举个例子:-base64

-in filename内定要加密的文书,filename为该文件的文本名

-out filename钦点将加密后的数据保存到filename内定的文件中

-e钦赐为加密经过,此为默许进度

-d钦命为解密进度

示例:

# openssl enc -base64 -in plaintext.txt -out ciphertext.txt

运用base64加密算法将plaintext.txt文件中的数据加密,并保存到ciphertext.txt文件中。

# openssl enc -base64 -in ciphertext.txt -d

利用base64算法解密ciphertext.txt文件中的数据,并打字与印刷到体现荧屏。

澳门新萄京官方网站 2

(1卡塔尔国.创造openssl的目录结构

[root@xuexi tmp]# openssl req -new -key pri_key.pem -out req1.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:FJ
Locality Name (eg, city) [Default City]:XM
Organization Name (eg, company) [Default Company Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (eg, your name or your server's hostname) []:www.youwant.com
Email Address []:

Please enter the following 'extra' attributes    # 下面两项几乎不用考虑,留空即可
to be sent with your certificate request
A challenge password []:.
An optional company name []:.

(a卡塔尔(英语:State of Qatar).创造布局文件

[root@xuexi ~]# mkdir /ssl;touch /ssl/ssl.conf

[root@xuexi ~]# cd /ssl

[root@xuexi ssl]# vim ssl.conf

在敲下回车键后,私下认可会进去相互格局令你提供您个人的音信,需求注意的是,假诺某个新闻不想填能够选择使用暗中认可值,也足以筛选留空不填,直接回车将选拔使用默许值,输入点"."将象征该新闻项留空。但一些项是必填项,不然未来表明签定时将倒闭。如"Common Name",它表示的是为哪个域名、子域名或哪个主机申请证书,现在注解央求被签定后将必须要利用于"Common Name"所内定的地址。具体什么必填项还亟需看所运用的配置文件(默许的配备文件为/etc/pki/tls/openssl.cnf卡塔尔中的定义,此处权且不钻探布署相关内容,仅提供Common Name就可以。

2、利用openssl提取数据特征码

openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-c] [file...] ...

-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1钦赐提取数据特征码的单向加密算法

-c钦赐特征码输出格式,每两位跟上多少个冒号

file内定要提取数额特征码的文件

示例:

# openssl dgst -md5 -c plaintext.txt

行使md5单项加密算法提取plaintext.txt文件的多少特征码。纵然是当文件中的数据遭到渺小的窜改,再一次计算得出的数据特征码都会和原先的特征码大有径庭。

澳门新萄京官方网站 3

(b卡塔尔国.创造openssl的目录布局中的目录,在上述配置文件中的目录分别为/ssl/db、/ssl/private和/ssl/certs,能够虚构将private目录的权柄设置为600依然400。

[root@xuexi ssl]# mkdir /ssl/{db,private,certs}

[root@xuexi ssl]# chmod -R 400 private/

除却"-new"选项,使用"-newkey"选项也能创造证书须要文件,此处暂不举个例子表明"-newkey"的用法,后文仲有示范。

(2).CA自签名

平常的证件央浼必要使用CA的私钥进行具名变成证书,既然是自签署证书那自然是行使本身的私钥来签字。能够动用伪命令req、ca、x509来自签字。

(2卡塔尔国.查看证书央浼文件内容。

3、利用openssl生成密钥

openssl genrsa [-out filename] [numbits] ...

-out filename钦点将转移的私钥保存到filename文件中

numbits内定私钥的尺寸(位数)

openssl rsa [-in filename] [-out filename] [-pubout] ...

-in filename钦赐私钥文件

-out filename钦命将从私钥中领抽取的公钥保存到filename文件中

-pubout钦赐从私钥中领取公钥

示例:

# (umask 077; openssl genrsa -out private.key 512)

括号中的命令就要子shell中运营。第一条命令改造子shell中的umask值,令生成的公文除属主外,其外人对她无此外权力,保证了私钥的机密性。采纳卡宴SA非对称加密算法生成512人的私钥,并将其保存到private.key文件中。

# openssl rsa -in private.key -pubout

从private.key中的私钥中提收取公钥,并打字与印刷到展示显示器。

澳门新萄京官方网站 4

应用req伪命令制造CA

此间有二种艺术:1.一步成功,即私钥、证书乞求、自签订都在贰个下令中成功2.分步完结,先生成私钥、再成立证书央浼、再钦点私钥来具名。方法第22中学实际生成私钥和注解申请可以统风度翩翩在一步中做到,证书申请和签订也能够统风华正茂在一步中完结。

艺术大器晚成:一步成功

在底下的一步命令中,使用-new由于并未有一点名私钥输出地方,所以自动保存在ssl.conf中default_keyfile钦定的private.pem中;由于ssl.conf中的req段设置了encrypt_key=no,所以交互作用时没有必要输入私钥的加密密码;由于选拔req -x509自签署的评释保藏期默许为30天,而计划文件中req段又不能布署该期限,所以必须要使用-days来钦点保质期限,注意这么些-days选项只效力于x509具名,证书诉求中一旦钦命了岁月是不著见到效果的。

[root@xuexi ssl]# openssl req -x509 -new -out req.crt -config ssl.conf -days 365
[root@xuexi ssl]# ll 
total 24
drwxr-xr-x 2 root root 4096 Nov 22 09:05 certs
drwxr-xr-x 2 root root 4096 Nov 22 09:05 db
drwx------ 2 root root 4096 Nov 22 09:05 private
-rw-r--r-- 1 root root 3272 Nov 22 10:52 private.pem  /* 注意权限为644 */
-rw-r--r-- 1 root root 1753 Nov 22 10:52 req.crt
-rw-r--r-- 1 root root 1580 Nov 22 10:51 ssl.conf
[root@xuexi ssl]# openssl x509 -noout -dates -in req.crt 
notBefore=Nov 22 02:52:24 2016 GMT
notAfter=Nov 22 02:52:24 2017 GMT

措施二:分步实现,这里把各个恐怕的步调合併都是身作则二回

>>创设私钥和证件央浼合并而具名独自开展的形式<<

[root@xuexi ssl]# openssl req -newkey rsa:1024 -keyout key.pem -out req1.csr -config ssl.conf -days 365
[root@xuexi ssl]# openssl req -x509 -in req1.csr -key key.pem -out req1.crt
[root@xuexi ssl]# openssl x509 -noout -dates -in req1.crt/* 注意签名不要配置文件 */
notBefore=Nov 22 02:58:25 2016 GMT
notAfter=Dec 22 02:58:25 2016 GMT  /* 可以看到证书请求中指定-days是无效的 */
[root@xuexi ssl]# ll
total 36
drwxr-xr-x 2 root root 4096 Nov 22 09:05 certs
drwxr-xr-x 2 root root 4096 Nov 22 09:05 db
-rw-r--r-- 1 root root  912 Nov 22 10:57 key.pem
drwx------ 2 root root 4096 Nov 22 09:05 private
-rw-r--r-- 1 root root 3272 Nov 22 10:52 private.pem
-rw-r--r-- 1 root root  826 Nov 22 10:58 req1.crt
-rw-r--r-- 1 root root  688 Nov 22 10:57 req1.csr
-rw-r--r-- 1 root root 1753 Nov 22 10:52 req.crt
-rw-r--r-- 1 root root 1580 Nov 22 10:51 ssl.conf

>>独自生成私钥,而乞求和具名合併的点子<<

[root@xuexi ssl]# (umask 077;openssl genrsa -out key1.pem 1024)
[root@xuexi ssl]# openssl req -x509 -new -key key1.pem -out req2.crt -config ssl.conf -days 365
[root@xuexi ssl]# openssl x509 -noout -dates -in req2.crt 
notBefore=Nov 22 03:28:31 2016 GMT
notAfter=Nov 22 03:28:31 2017 GMT
[root@xuexi ssl]# ll
total 44
drwxr-xr-x 2 root root 4096 Nov 22 09:05 certs
drwxr-xr-x 2 root root 4096 Nov 22 09:05 db
-rw-r--r-- 1 root root  912 Nov 22 10:57 key1.pem
-rw------- 1 root root  887 Nov 22 11:26 key2.pem
drwx------ 2 root root 4096 Nov 22 09:05 private
-rw-r--r-- 1 root root 3272 Nov 22 10:52 private.pem
-rw-r--r-- 1 root root  826 Nov 22 10:58 req1.crt
-rw-r--r-- 1 root root  688 Nov 22 10:57 req1.csr
-rw-r--r-- 1 root root  709 Nov 22 11:28 req2.crt
-rw-r--r-- 1 root root 1753 Nov 22 10:52 req.crt
-rw-r--r-- 1 root root 1580 Nov 22 10:51 ssl.conf

>>完全分步进行<<

[root@xuexi ssl]# rm -rf key* req* private.pem
[root@xuexi ssl]# (umask 077;openssl genrsa -out key.pem 1024)
[root@xuexi ssl]# openssl req -new -key key.pem -out req.csr -config ssl.conf 
[root@xuexi ssl]# openssl req -x509 -key key.pem -in req.csr -out req.crt -days 365
[root@xuexi ssl]# openssl x509 -noout -dates -in req.crt
notBefore=Nov 22 04:29:21 2016 GMT
notAfter=Nov 22 04:29:21 2017 GMT
[root@xuexi ssl]# ll
total 28
drwxr-xr-x 2 root root 4096 Nov 22 09:05 certs
drwxr-xr-x 2 root root 4096 Nov 22 09:05 db
-rw------- 1 root root  887 Nov 22 12:28 key.pem
drwx------ 2 root root 4096 Nov 22 09:05 private
-rw-r--r-- 1 root root  826 Nov 22 12:29 req.crt
-rw-r--r-- 1 root root  688 Nov 22 12:28 req.csr
-rw-r--r-- 1 root root 1580 Nov 22 10:51 ssl.conf

在本节的启幕表明了成立证书乞请时须要提供私钥,那么些私钥的效果是为了提供公钥。上面是认证。

/* 提取私钥key.pem中的公钥到key.pub文件中 */
[root@xuexi ssl]# openssl rsa -in key.pem -pubout -out key.pub
/* 输出证书请求req.csr中的公钥部分 */
[root@xuexi ssl]# openssl req -noout -pubkey -in req.csr     
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC YBneLYbh OZWpiyPqIQHOsU5
D8il6UF7hi3NgEX/6vtciSmp7GXpXUV1tDglCCTPOfCHcEzeO0Gvky21LUenDsl/
aC2lraSijpl41 rT4mKNrCyDPZw4iG44 vLHfgHb3wJhBbBk0aw51dmxUat8FHCL
hU7nx Du637UDlwdEQIDAQAB
-----END PUBLIC KEY-----
/* 查看key.pub,可以发现和req.csr中的公钥是一样的 */
[root@xuexi ssl]# cat key.pub 
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC YBneLYbh OZWpiyPqIQHOsU5
D8il6UF7hi3NgEX/6vtciSmp7GXpXUV1tDglCCTPOfCHcEzeO0Gvky21LUenDsl/
aC2lraSijpl41 rT4mKNrCyDPZw4iG44 vLHfgHb3wJhBbBk0aw51dmxUat8FHCL
hU7nx Du637UDlwdEQIDAQAB
-----END PUBLIC KEY-----

虽说创造证书央浼时采纳的是公钥,但是却无法动用-key选项钦命公钥,而是只可以钦定私钥,因为req -new或-newkey选项会调用openssl rsa命令来领取公钥,内定公钥该调用将实施停业。

现在曾经更换了八个新的评释须要文件req1.csr。查看下该证件伏乞文件的源委。

使用x509伪命令创设CA

使用x509伪命令必要提供伏乞文件,由此必要先创设证书诉求文件。由于x509伪命令具名时不读取配置文件,所以没有须要安装配置文件,若供给某选项,只需使用x509中对应的选项来达到即可。

以下x509 -req用于自签订公约,要求-signkey提供签字所需私钥key.pem。

[root@xuexi ssl]# openssl req -new -keyout key.pem -out req.csr -config ssl.conf
[root@xuexi ssl]# openssl x509 -req -in req.csr -signkey key.pem -out x509.crt
[root@xuexi tmp]# cat req1.csr
-----BEGIN CERTIFICATE REQUEST-----             # 证书请求的内容
MIIBgDCB6gIBADBBMQswCQYDVQQGEwJDTjELMAkGA1UECAwCRkoxCzAJBgNVBAcM
AlhNMRgwFgYDVQQDDA93d3cueW91d2FudC5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
gY0AMIGJAoGBAMbx9bfsC0GTn7DijfGFs56Fb8atX9ABRDE/wmE74jXjdfbH4ZOg
Te0Orlu5pA4jqXDgSLzlQvjD6QsyhToyvtyQbgGSfXSVOPcgfAohDNo9t6 mnvs/
5rFQJ1 uI6gsLMbwQBJidLGnM1pOvFo2671Vm2jewDLVweGP5wmIfDyLAgMBAAGg
ADANBgkqhkiG9w0BAQUFAAOBgQAqKYjNKKpNCvwDNeDeYynOx1XD/OYgAU43Sq03
aRUcKenqICkvkXkUE H0lYMtXcDL/rgDyjlKvwartgZ/ngoKSwtXhd4UivII2hNN
jolE3gfe8KGjMpnX/8oxkJIoSTETqee 11ez8E2fya1DwoQnKpXjTt5qya8VWflt
DG8WmA==
-----END CERTIFICATE REQUEST-----

4、利用openssl生成数字证书伏乞

openssl req [-in filename] [-out filename] [-text] [-pubkey] [-new] [-newkey rss:bits] [-nodes] [-key filename] [-keyout filename] [-config filename] [-x509] [-days n] [-batch] ...

-in filename从钦定文件中读取数字证书必要

-out filename将扭转的数字证书需要、公钥等信息保存到钦定文件中

-text以文本格式输出数字证书诉求的原委

-pubkey输出公钥

-new新建数字证书央浼

-newkey rsa:bits新建钦命位数的奥德赛SA密钥,和-key选项互斥

-nodes合营-newkey选项,钦定生成的密钥文件不加密

-key filename钦赐本来就有密钥的文本,和-newkey选项互斥

-keyout filename将转移的私钥保存到钦定的文本中

-config filename内定参数文件,私下认可为/etc/pki/tls/openssl.cnf

-x509钦定生成自签定证书

-days n合作-x509选项,钦点数字证书保藏期限

-batch非交互作用式方式

a、使用本来就有私钥生成证书央求

# openssl req -new -key private.key -out client.csr

应用本来就有凯雷德SA私钥、输入主体相关新闻,生成证书央浼文件,并将其保存至client.csr文件。

澳门新萄京官方网站 5

澳门新萄京官方网站 6

# openssl req -new -key private.key -out client.csr -batch -pubkey

动用原来就有MuranoSA私钥生成证书伏乞文件,内定-batch选项,主体相关音讯从布局文件中读取。并将证件乞求和公钥数据保存至client.csr文件。

澳门新萄京官方网站 7

b、自动生成密钥和证件供给

# openssl req -new -newkey rsa:512 -out client.csr -keyout private.key -batch -pubkey

从安顿文件中读取主体相关音讯,自动生成510位奥迪Q7SA密钥和注脚供给。将私钥保存至private.key文件中;将公钥和证件乞请保存至client.csr文件中。

澳门新萄京官方网站 8

澳门新萄京官方网站 9

# openssl rsa -in private.key

输入保存密钥时设置的密码,解密private.key中的密钥。

澳门新萄京官方网站 10

# openssl req -new -newkey rsa:512 -out client.csr -keyout private.key -batch -pubkey -nodes

从构造文件中读取主体相关新闻,自动生成510位福特ExplorerSA密钥和证件央求。将私钥保存至private.key文件中;将公钥和证书央求保存至client.csr文件中。钦定-nodes选项,密钥文件不加密。

澳门新萄京官方网站 11

c、生成自签证书

# openssl req -new -x509 -newkey rsa:512 -out client2.crt -keyout private2.key -batch -pubkey -nodes

在自动生成证书央求命令中加多-x509选项就能够。

澳门新萄京官方网站 12

d、查看证书诉求和申明内容

# openssl req -in client.csr -text | less

查阅证书央浼文件的故事情节。

澳门新萄京官方网站 13

# openssl x509 -in client2.crt -text | less

翻看自签证书文件的内容。

澳门新萄京官方网站 14

行使ca伪命令创设CA

利用ca伪命令自具名会读取配置文件中的ca部分,所以陈设文件中所需的目录和文件构造都亟需创造好,包涵目录db、private、certs,文件db/index、db/serial,并向serial中写入三个系列号。由于是自签订,能够自动内定私钥文件,由此对于签名所需CA私钥文件无需放置在private目录中。

[root@xuexi ssl]# touch db/{serial,index}
[root@xuexi ssl]# echo "01" > db/serial
[root@xuexi ssl]# openssl req -new -keyout key.pem -out req.csr -config ssl.conf
[root@xuexi ssl]# openssl ca -selfsign -keyfile key.pem -in req.csr -config ssl.conf

在那签订进程中有若干遍询问,如下:

Certificate is to be certified until Nov 20 06:34:41 2026 GMT (3650 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

若要无人机联作,则应用-batch步入批管理情势。

[root@xuexi ssl]# openssl ca -selfsign -keyfile key.pem -in req.csr -config ssl.conf -batch

更生气勃勃的可以运用openssl req命令查看。命令如下,当中"-in"选项钦点的是评释央浼文件。

2.为其余证件伏乞签名

CA为别的诉求或申明签名时,需求利用到的文书有:自个儿的CA证书和友好的私钥文件。因而签字进程中要求提供这两个文件。

[root@xuexi tmp]# openssl req -in req1.csr
-----BEGIN CERTIFICATE REQUEST-----             # 证书请求的内容
MIIBgDCB6gIBADBBMQswCQYDVQQGEwJDTjELMAkGA1UECAwCRkoxCzAJBgNVBAcM
AlhNMRgwFgYDVQQDDA93d3cueW91d2FudC5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
gY0AMIGJAoGBAMbx9bfsC0GTn7DijfGFs56Fb8atX9ABRDE/wmE74jXjdfbH4ZOg
Te0Orlu5pA4jqXDgSLzlQvjD6QsyhToyvtyQbgGSfXSVOPcgfAohDNo9t6 mnvs/
5rFQJ1 uI6gsLMbwQBJidLGnM1pOvFo2671Vm2jewDLVweGP5wmIfDyLAgMBAAGg
ADANBgkqhkiG9w0BAQUFAAOBgQAqKYjNKKpNCvwDNeDeYynOx1XD/OYgAU43Sq03
aRUcKenqICkvkXkUE H0lYMtXcDL/rgDyjlKvwartgZ/ngoKSwtXhd4UivII2hNN
jolE3gfe8KGjMpnX/8oxkJIoSTETqee 11ez8E2fya1DwoQnKpXjTt5qya8VWflt
DG8WmA==
-----END CERTIFICATE REQUEST-----

5、利用openssl创立私有CA并签发数字证书

a、依照/etc/pki/tls/openssl.cnf文件的参数配置,在/etc/pki/CA/private/目录下生成私钥,并保留为cakey.pem。

# openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048

b、依照/etc/pki/tls/openssl.cnf文件的参数配置,在/etc/pki/CA/目录下转移自签证书,并保存为cacert.pem。

# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem

c、依照/etc/pki/tls/openssl.cnf文件的参数配置,在/etc/pki/CA/目录下生成index.txt(此文件保留已签定的证件音信),serial,并向serial文件中覆盖重定向01数字(此为签订证书的号子)。

# touch /etc/pki/CA/index.txt && touch /etc/pki/CA/serial && echo 01 > /etc/pki/CA/serial

d、签订证书央浼。

#澳门新萄京官方网站openssl签署和自签署证书的多种实现方式,openSSL及创建私有CA。 openssl ca -in client.csr -out client.crt

澳门新萄京官方网站 15

澳门新萄京官方网站 16

透过查看/etc/pki/CA/index.txt文件,可窥见自建的私有CA已成功签订协议了生龙活虎份申明。

(1卡塔尔(英语:State of Qatar).使用ca伪命令为任何表明供给具名

动用ca伪命令自行建造根CA后,目录布局如下:

[root@xuexi ssl]# tree -R -C             
.
├── certs
│   └── 01.pem
├── db
│   ├── index
│   ├── index.attr
│   ├── index.old
│   ├── serial
│   └── serial.old
├── key.pem
├── private
├── req.csr
└── ssl.conf

其中01.pem是根CA证书,key.pem是根CA私钥。

这段日子要为其余申明央求签字,首先成立别的央求吧,假如该乞求文件/tmp/req.csr。

[root@xuexi ssl]# openssl req -new -keyout /tmp/key.pem -out /tmp/req.csr -config ssl.conf

行使根证书01.pem为/tmp/req.csr签字。

[root@xuexi ssl]# openssl ca -in /tmp/req.csr -keyfile key.pem -cert certs/01.pem -config ssl.conf -batch

如此挺劳顿,因为老是为外人具名时都要钦赐-cert和-keyfile,可以将CA的注解和CA的私钥移动到安顿文件中内定的门路下:

certificate = $home/$name.crt

private_key = $home/private/$name.key

[root@xuexi ssl]# mv certs/01.pem root-ca.crt
[root@xuexi ssl]# mv key.pem private/root-ca.key

再接纳ca具名时将得以采用暗中认可值。

[root@xuexi ssl]# openssl ca -in /tmp/req.csr -config ssl.conf -batch

翻开乞求文件时,能够组合别的多少个选取输出特定的从头到尾的经过。"-text"选项表示以文本格式输出证书伏乞文件的内容。

参考文献

[1] Linux.cn. (2016).openssl 证书需要和自签订公约命令 req 详明-技巧 ◆ 学习|Linux.中华夏族民共和国-开源社区. [online] Available at: 澳门新萄京官方网站openssl签署和自签署证书的多种实现方式,openSSL及创建私有CA。 [Accessed 10 May 2016].

[2] Wikipedia. (2016).Transport Layer Security. [online] Available at: [Accessed 10 May 2016].

(2卡塔尔.使用x509伪命令为别的证书央浼具名

前几天根CA证书为root-ca.crt,CA的私钥为private/root-ca.key。

下边使用x509伪命令实现签订公约。由于x509不会读取配置文件,所以须要提供具名的队列号,使用-CAcreateserial能够在并未有体系号文件时自动创设;由于x509暗中同意-in内定的输入文件是证书文件,所以要对诉求文件签名,必要利用-req来表示输入文件为呼吁文件。

[root@xuexi ssl]# openssl x509 -req -in /tmp/req.csr -CA root-ca.crt -CAkey private/root-ca.key -out x509.crt -CAcreateserial
[root@xuexi tmp]# openssl req -in req1.csr -text
Certificate Request:                                            # 此为证书请求文件头
    Data:
        Version: 0 (0x0)
        Subject: C=CN, ST=FJ, L=XM, CN=www.youwant.com          # 此为提供的个人信息,注意左侧标头为"Subject",这是很重要的一项
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption                 # 使用的公钥算法
                Public-Key: (1024 bit)                          # 公钥的长度
                Modulus:
                    00:c6:f1:f5:b7:ec:0b:41:93:9f:b0:e2:8d:f1:85:
                    b3:9e:85:6f:c6:ad:5f:d0:01:44:31:3f:c2:61:3b:
                    e2:35:e3:75:f6:c7:e1:93:a0:4d:ed:0e:ae:5b:b9:
                    a4:0e:23:a9:70:e0:48:bc:e5:42:f8:c3:e9:0b:32:
                    85:3a:32:be:dc:90:6e:01:92:7d:74:95:38:f7:20:
                    7c:0a:21:0c:da:3d:b7:af:a6:9e:fb:3f:e6:b1:50:
                    27:5f:ae:23:a8:2c:2c:c6:f0:40:12:62:74:b1:a7:
                    33:5a:4e:bc:5a:36:eb:bd:55:9b:68:de:c0:32:d5:
                    c1:e1:8f:e7:09:88:7c:3c:8b
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: sha1WithRSAEncryption                  # 为请求文件数字签名时使用的算法
         2a:29:88:cd:28:aa:4d:0a:fc:03:35:e0:de:63:29:ce:c7:55:
         c3:fc:e6:20:01:4e:37:4a:ad:37:69:15:1c:29:e9:ea:20:29:
         2f:91:79:14:13:e1:f4:95:83:2d:5d:c0:cb:fe:b8:03:ca:39:
         4a:bf:06:ab:b6:06:7f:9e:0a:0a:4b:0b:57:85:de:14:8a:f2:
         08:da:13:4d:8e:89:44:de:07:de:f0:a1:a3:32:99:d7:ff:ca:
         31:90:92:28:49:31:13:a9:e7:be:d7:57:b3:f0:4d:9f:c9:ad:
         43:c2:84:27:2a:95:e3:4e:de:6a:c9:af:15:59:f9:6d:0c:6f:
         16:98
-----BEGIN CERTIFICATE REQUEST-----                    
MIIBgDCB6gIBADBBMQswCQYDVQQGEwJDTjELMAkGA1UECAwCRkoxCzAJBgNVBAcM
AlhNMRgwFgYDVQQDDA93d3cueW91d2FudC5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
gY0AMIGJAoGBAMbx9bfsC0GTn7DijfGFs56Fb8atX9ABRDE/wmE74jXjdfbH4ZOg
Te0Orlu5pA4jqXDgSLzlQvjD6QsyhToyvtyQbgGSfXSVOPcgfAohDNo9t6 mnvs/
5rFQJ1 uI6gsLMbwQBJidLGnM1pOvFo2671Vm2jewDLVweGP5wmIfDyLAgMBAAGg
ADANBgkqhkiG9w0BAQUFAAOBgQAqKYjNKKpNCvwDNeDeYynOx1XD/OYgAU43Sq03
aRUcKenqICkvkXkUE H0lYMtXcDL/rgDyjlKvwartgZ/ngoKSwtXhd4UivII2hNN
jolE3gfe8KGjMpnX/8oxkJIoSTETqee 11ez8E2fya1DwoQnKpXjTt5qya8VWflt
DG8WmA==
-----END CERTIFICATE REQUEST-----

1.2 选拔暗许配置文件/etc/pki/tls/openssl.cnf的完结格局

那是推荐应用的主意,因为方便处理,但使用默许配置文件,供给张开一些伊始化动作。

由于完全使用/etc/pki/tls/openssl.cnf的安排,所以要独立自主有关文书。

自建CA的过程:

[root@xuexi tmp]# touch /etc/pki/CA/index.txt 
[root@xuexi tmp]# echo "01" > /etc/pki/CA/serial
[root@xuexi tmp]# openssl genrsa -out /etc/pki/CA/private/cakey.pem     # 创建CA的私钥
[root@xuexi tmp]# openssl req -new -key /etc/pki/CA/private/cakey.pem -out rootCA.csr   # 创建CA待自签署的证书请求文件
[root@xuexi tmp]# openssl ca -selfsign -in rootCA.csr                      # 自签署
[root@xuexi tmp]# cp /etc/pki/CA/newcerts/01.pem /etc/pki/CA/cacert.pem    # 将自签署的证书按照配置文件的配置复制到指定位置

为旁人颁发证书的经过:

[root@xuexi tmp]# openssl ca -in youwant1.csr

签订公约成功后,证书放在/etc/pki/CA/newcert目录下,将新生成的申明文件发送给申请者就能够。

 

回去openssl类别小说大纲:http://www.cnblogs.com/f-ck-need-u/p/7048359.html

将"-text"和"-noout"结合使用,则只输出证书央浼的公文底部分。

转发请申明出处:http://www.cnblogs.com/f-ck-need-u/p/6091105.html

[root@xuexi tmp]# openssl req -in req1.csr -noout -text
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=CN, ST=FJ, L=XM, CN=www.youwant.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (1024 bit)
                Modulus:
                    00:c6:f1:f5:b7:ec:0b:41:93:9f:b0:e2:8d:f1:85:
                    b3:9e:85:6f:c6:ad:5f:d0:01:44:31:3f:c2:61:3b:
                    e2:35:e3:75:f6:c7:e1:93:a0:4d:ed:0e:ae:5b:b9:
                    a4:0e:23:a9:70:e0:48:bc:e5:42:f8:c3:e9:0b:32:
                    85:3a:32:be:dc:90:6e:01:92:7d:74:95:38:f7:20:
                    7c:0a:21:0c:da:3d:b7:af:a6:9e:fb:3f:e6:b1:50:
                    27:5f:ae:23:a8:2c:2c:c6:f0:40:12:62:74:b1:a7:
                    33:5a:4e:bc:5a:36:eb:bd:55:9b:68:de:c0:32:d5:
                    c1:e1:8f:e7:09:88:7c:3c:8b
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: sha1WithRSAEncryption          # 为请求文件数字签名时使用的算法
         2a:29:88:cd:28:aa:4d:0a:fc:03:35:e0:de:63:29:ce:c7:55:
         c3:fc:e6:20:01:4e:37:4a:ad:37:69:15:1c:29:e9:ea:20:29:
         2f:91:79:14:13:e1:f4:95:83:2d:5d:c0:cb:fe:b8:03:ca:39:
         4a:bf:06:ab:b6:06:7f:9e:0a:0a:4b:0b:57:85:de:14:8a:f2:
         08:da:13:4d:8e:89:44:de:07:de:f0:a1:a3:32:99:d7:ff:ca:
         31:90:92:28:49:31:13:a9:e7:be:d7:57:b3:f0:4d:9f:c9:ad:
         43:c2:84:27:2a:95:e3:4e:de:6a:c9:af:15:59:f9:6d:0c:6f:
         16:98

还足以只输出subject部分的剧情。

[root@xuexi tmp]# openssl req -in req2.csr -subject -noout
subject=/C=CN/ST=FJ/L=XM/CN=www.youwant.com

也得以使用"-pubkey"输出证书伏乞文件中的公钥内容。假使从报名证书诉求时所提供的私钥中提收取公钥,这两段公钥的剧情是完全后生可畏致的。

[root@xuexi tmp]# openssl req -in req1.csr -pubkey -noout
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDG8fW37AtBk5 w4o3xhbOehW/G
rV/QAUQxP8JhO I143X2x GToE3tDq5buaQOI6lw4Ei85UL4w kLMoU6Mr7ckG4B
kn10lTj3IHwKIQzaPbevpp77P axUCdfriOoLCzG8EASYnSxpzNaTrxaNuu9VZto
3sAy1cHhj cJiHw8iwIDAQAB
-----END PUBLIC KEY-----

[root@xuexi tmp]# openssl rsa -in pri_key.pem -pubout
writing RSA key
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDG8fW37AtBk5 w4o3xhbOehW/G
rV/QAUQxP8JhO I143X2x GToE3tDq5buaQOI6lw4Ei85UL4w kLMoU6Mr7ckG4B
kn10lTj3IHwKIQzaPbevpp77P axUCdfriOoLCzG8EASYnSxpzNaTrxaNuu9VZto
3sAy1cHhj cJiHw8iwIDAQAB
-----END PUBLIC KEY-----

(3卡塔尔(قطر‎.钦定证书央求文件中的签名算法。

小心到证书乞求文件的尾部分有风华正茂项是"Signature Algorithm",它象征使用的是哪一种数字签名算法。默许使用的是sha1,还帮衬md5、sha512等,更加多可支撑的签字算法见"openssl dgst --help"中所列出内容。举个例子此处钦点md5算法。

[root@xuexi tmp]# openssl req -new -key pri_key.pem -out req2.csr -md5

[root@xuexi tmp]# openssl req -in req2.csr -noout -text | grep Algo
            Public Key Algorithm: rsaEncryption
    Signature Algorithm: md5WithRSAEncryption

(4卡塔尔.验证央浼文件的数字签字,那样能够作证出注解必要文件是还是不是被点窜过。下边包车型大巴吩咐中"-verify"选项表示验证证书央浼文件的数字具名。

[root@xuexi tmp]# openssl req -verify -in req2.csr
verify OK
-----BEGIN CERTIFICATE REQUEST-----
MIIBgDCB6gIBADBBMQswCQYDVQQGEwJDTjELMAkGA1UECAwCRkoxCzAJBgNVBAcM
AlhNMRgwFgYDVQQDDA93d3cueW91d2FudC5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
gY0AMIGJAoGBAMbx9bfsC0GTn7DijfGFs56Fb8atX9ABRDE/wmE74jXjdfbH4ZOg
Te0Orlu5pA4jqXDgSLzlQvjD6QsyhToyvtyQbgGSfXSVOPcgfAohDNo9t6 mnvs/
5rFQJ1 uI6gsLMbwQBJidLGnM1pOvFo2671Vm2jewDLVweGP5wmIfDyLAgMBAAGg
ADANBgkqhkiG9w0BAQQFAAOBgQCcvWuwmeAowbqLEsSpBVGnRfDEeH897v1r/SaX
9yYhpc3Kp5HKQ3LpSZBYGxlIsE6I3DMT5d1wcPeKRi8B6BIfemYOEbhLVGLmhNAg
iHyV/s1/TaOc31QZMY1HvD5BTOlhed MpevWAFX2CRXuhKYBOimCrGNJxrFj4srJ
M1zDOA==
-----END CERTIFICATE REQUEST-----

结果中率先行的"verify OK"表示证书央求文件是欧洲经济共同体未被点窜进的,但还要输出了证书哀告的内容。如若不想出口那部分内容,使用"-noout"选项就可以。

[root@xuexi tmp]# openssl req -verify -in req2.csr -noout
verify OK

(5卡塔尔国.自签订协议证书,可用以自行建造根CA时。

使用openssl req自签定证书时,必要利用"-x509"选项,由于是签订契约证书诉求文件,所以能够内定"-days"内定所布告的证书保藏期。

[root@xuexi tmp]# openssl req -x509 -key pri_key.pem -in req1.csr -out CA1.crt -days 365

是因为openssl req命令的根本功用是创造和保管证书诉求文件,所以并未提供对证件文件的田间管理技巧,权且也就只好通过cat来查看证书文件CA1.crt了。

[root@xuexi tmp]# cat CA1.crt
-----BEGIN CERTIFICATE-----
MIICUDCCAbmgAwIBAgIJAIrxQ zicLzIMA0GCSqGSIb3DQEBBQUAMEExCzAJBgNV
BAYTAkNOMQswCQYDVQQIDAJGSjELMAkGA1UEBwwCWE0xGDAWBgNVBAMMD3d3dy55
b3V3YW50LmNvbTAeFw0xNzA2MjcwNzU0NTJaFw0xODA2MjcwNzU0NTJaMEExCzAJ
BgNVBAYTAkNOMQswCQYDVQQIDAJGSjELMAkGA1UEBwwCWE0xGDAWBgNVBAMMD3d3
dy55b3V3YW50LmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxvH1t wL
QZOfsOKN8YWznoVvxq1f0AFEMT/CYTviNeN19sfhk6BN7Q6uW7mkDiOpcOBIvOVC
 MPpCzKFOjK 3JBuAZJ9dJU49yB8CiEM2j23r6ae z/msVAnX64jqCwsxvBAEmJ0
saczWk68WjbrvVWbaN7AMtXB4Y/nCYh8PIsCAwEAAaNQME4wHQYDVR0OBBYEFMLa
Dm9yZeRh3Bu zmpU2iKbQBQgMB8GA1UdIwQYMBaAFMLaDm9yZeRh3Bu zmpU2iKb
QBQgMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAd2CJPe987RO34ySA
7EC0zQkhDz9d2vvvPWYjq0XA/frntlKKhgFwypWPBwwFTBwfvLHMnNpKy0zXXAkB
1ttgzMgka/qv/gcKoLN3dwM7Hz eCl/cXVJmVG7PqAjfqSr6IyM7v/B6dC0Xv49m
h5mv24HqKtJoEeI0iARaNmOxKeE=
-----END CERTIFICATE-----

其实,"-x509"选项和"-new"或"-newkey"合营使用时,能够不点名证书伏乞文件,它在自签署进程中校在内存中自行创造证书须要文件,当然,既然要创设证书诉求文件,就需求人工输入申请者的音讯了。比如:

[root@xuexi tmp]# openssl req -new -x509 -key pri_key.pem -out CA1.crt -days 365

实在,使用"-x509"选项后,"-new"或"-newkey"将意味着成立贰个证书文件实际不是二个注明乞请文件。

(6卡塔尔(英语:State of Qatar).让openssl req自动成立所需的私钥文件。

在前面的兼具例子中,在急需私钥的时候都一望而知使用了"-key"选项提供私钥。其实只要不提供,openssl req会在其他供给私钥的地点活动创制私钥,并保留在一定之处,私下认可的保存地点为当前目录,文件名叫privkey.pem,具体保存的义务和文书名由配置文件(默感到/etc/pki/tls/openssl.cnf卡塔尔国决定,此处不钻探该公文。当然,openssl req命令的"-keyout"选项能够钦点私钥保存地方。

例如:

[root@xuexi tmp]# openssl req -new -out req3.csr
Generating a 2048 bit RSA private key          # 自动创建私钥
..................   
.....................................   
writing new private key to 'privkey.pem'
Enter PEM pass phrase:                         # 要求输入加密私钥文件的密码,且要求长度为4-1024个字符
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:^C

而是,openssl req在自动创设私钥时,将连接加密该私钥文件,并提醒输入加密的密码。能够使用"-nodes"选项防止加密私钥文件。

[root@xuexi tmp]# openssl req -new -out req3.csr -nodes
Generating a 2048 bit RSA private key
.............   
.............................................................................   
writing new private key to 'privkey.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:^C

点名自动创设私钥时,私钥文件的保留地方和文书名。使用"-keyout"选项。

[root@xuexi tmp]# openssl req -new -out req3.csr -nodes -keyout myprivkey.pem
Generating a 2048 bit RSA private key
......................   
............................................................   
writing new private key to 'myprivkey.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:^C

(7).使用"-newkey"选项。

"-newkey"选项和"-new"选项近似,只可是"-newkey"选项可以直接钦点私钥的算法和尺寸,所以它至关心爱抚要用在openssl req自动创造私钥时。

它的应用格式为"-newkey arg",此中arg的格式为"rsa:numbits",rsa代表创立rsa私钥,numbits表示私钥的长度,纵然不给定长度(即"-newkey rsa"卡塔尔国则暗中同意从配置文件中读取长度值。其实不仅仅扶助rsa私钥,只不过今后中央都以用rsa私钥,所以暗许就应用rsa。

[root@xuexi tmp]# openssl req -newkey rsa:2048 -out req3.csr -nodes -keyout myprivkey.pem
Generating a 2048 bit RSA private key
....   
.......................................................   
writing new private key to 'myprivkey.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:^C

经过地点生龙活虎系类的例如表明后,想必openssl req的各中央选项的用法都通了。从上面的演示中也发觉了,openssl req平日会依附于配置文件(默以为/etc/pki/tls/openssl.cnf卡塔尔(قطر‎中的值。所以,先将openssl req的一声令下用法计算下,再轻易说明下布署文件花潮req有关的剧情。

openssl req [-new] [-newkey rsa:bits] [-verify] [-x509] [-in filename] [-out filename] [-key filename] [-passin arg] [-passout arg] 
[-keyout filename] [-pubkey] [-nodes] [-[dgst]] [-config filename] [-subj arg] [-days n] [-set_serial n] [-extensions section]
[-reqexts section] [-utf8] [-nameopt] [-reqopt] [-subject] [-subj arg] [-text] [-noout] [-batch] [-verbose]

选项说明:
-new        :创建一个证书请求文件,会交互式提醒输入一些信息,这些交互选项以及交互选项信息的长度值以及其他一些扩展属性在配置文件(默认为
            :openssl.cnf,还有些辅助配置文件)中指定了默认值。如果没有指定"-key"选项,则会自动生成一个RSA私钥,该私钥的生成位置
            :也在openssl.cnf中指定了。如果指定了-x509选项,则表示创建的是自签署证书文件,而非证书请求文件
-newkey args:类似于"-new"选项,创建一个新的证书请求,并创建私钥。args的格式是"rsa:bits"(其他加密算法请查看man),其中bits
            :是rsa密钥的长度,如果bits省略了(即-newkey rsa),则长度根据配置文件中default_bits指令的值作为默认长度,默认该值为2048
            :如果指定了-x509选项,则表示创建的是自签署证书文件,而非证书请求文件
-nodes      :默认情况下,openssl req自动创建私钥时都要求加密并提示输入加密密码,指定该选项后则禁止对私钥文件加密
-key filename    :指定私钥的输入文件,创建证书请求时需要
-keyout filename :指定自动创建私钥时私钥的存放位置,若未指定该选项,则使用配置文件中default_keyfile指定的值,默认该值为privkey.pem
-[dgst]          :指定对创建请求时提供的申请者信息进行数字签名时的单向加密算法,如-md5/-sha1/-sha512等,
                 :若未指定则默认使用配置文件中default_md指定的值
-verify       :对证书请求文件进行数字签名验证
-x509         :指定该选项时,将生成一个自签署证书,而不是创建证书请求。一般用于测试或者为根CA创建自签名证书
-days n       :指定自签名证书的有效期限,默认30天,需要和"-x509"一起使用。
              :注意是自签名证书期限,而非请求的证书期限,因为证书的有效期是颁发者指定的,证书请求者指定有效期是没有意义的,
              :配置文件中的default_days指定了请求证书的有效期限,默认365天
-set_serial n :指定生成自签名证书时的证书序列号,该序列号将写入配置文件中serial指定的文件中,这样就不需要手动更新该序列号文件
              :支持数值和16进制值(0x开头),虽然也支持负数,但不建议
-in filename  :指定证书请求文件filename。注意,创建证书请求文件时是不需要指定该选项的
-out filename :证书请求或自签署证书的输出文件,也可以是其他内容的输出文件,不指定时默认stdout
-subj args    :替换或自定义证书请求时需要输入的信息,并输出修改后的请求信息。args的格式为"/type0=value0/type1=value1...",
              :如果value为空,则表示使用配置文件中指定的默认值,如果value值为".",则表示该项留空。其中可识别type(man req)有:
              :C是Country、ST是state、L是localcity、O是Organization、OU是Organization Unit、CN是common name等

【输出内容选项:】
-text         :以文本格式打印证书请求
-noout        :不输出部分信息
-subject      :输出证书请求文件中的subject(如果指定了x509,则打印证书中的subject)
-pubkey       :输出证书请求文件中的公钥

【配置文件项和杂项:】
-passin arg      :传递解密密码
-passout arg     :指定加密输出文件时的密码
-config filename :指定req的配置文件,指定后将忽略所有的其他配置文件。如果不指定则默认使用/etc/pki/tls/openssl.cnf中req段落的值
-batch           :非交互模式,直接从配置文件(默认/etc/pki/tls/openssl.cnf)中读取证书请求所需字段信息。但若不指定"-key"时,仍会询问key
-verbose         :显示操作执行的详细信息

以下则是铺排文件中(暗中同意/etc/pki/tls/openssl.cnf卡塔尔(قطر‎关于req段落的布置格式。

input_password :密码输入文件,和命令行的"-passin"选项对应,密码格式以及意义见"openssl密码格式"
output_password:密码的输出文件,与命令行的"-passout"选项对应,密码格式以及意义见"openssl密码格式"
default_bits   :openssl req自动生成RSA私钥时的长度,不写时默认是512,命令行的"-new"和"-newkey"可能会用到它 
default_keyfile:默认的私钥输出文件,与命令行的"-keyout"选项对应 
encrypt_key    :当设置为no时,自动创建私钥时不会加密该私钥。设置为no时与命令行的"-nodes"等价。还有等价的兼容性写法:encry_rsa_key 
default_md     :指定创建证书请求时对申请者信息进行数字签名的单向加密算法,与命令行的"-[dgst]"对应 
prompt         :当指定为no时,则不提示输入证书请求的字段信息,而是直接从openssl.cnf中读取 :请小心设置该选项,很可能请求文件创建失败就是因为该选项设置为no 
distinguished_name:(DN)是一个扩展属性段落,用于指定证书请求时可被识别的字段名称。

以下是暗中同意的配置文件格式及值。关于配置文件的详细解析见"配置文件"部分。

[ req ]
default_bits            = 2048
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 (2 letter code)
countryName_default             = XX
countryName_min                 = 2
countryName_max                 = 2
stateOrProvinceName             = State or Province Name (full name)
localityName                    = Locality Name (eg, city)
localityName_default    = Default City
0.organizationName              = Organization Name (eg, company)
0.organizationName_default      = Default Company Ltd
organizationalUnitName          = Organizational Unit Name (eg, section)
commonName                      = Common Name (eg, your name or your server's hostname)
commonName_max                  = 64
emailAddress                    = Email Address
emailAddress_max                = 64

本文由澳门新萄京官方网站发布于澳门新萄京官方网站,转载请注明出处:澳门新萄京官方网站openssl签署和自签署证书的多

关键词: