xml地图|网站地图|网站标签 [设为首页] [加入收藏]

皇家国际娱乐生成证书请求和自建CA

来源:http://www.ccidsi.com 作者:集成经验 人气:119 发布时间:2019-05-22
摘要:以下则是布局文件中(暗许/etc/pki/tls/openssl.cnf)关于req段落的配备格式。 openssl req(生成证书请求和自行建造CA),opensslreq 伪命令req大概有二个职能:生成证书请求文件、验证证书请求文件

以下则是布局文件中(暗许/etc/pki/tls/openssl.cnf)关于req段落的配备格式。

openssl req(生成证书请求和自行建造CA),opensslreq

伪命令req大概有二个职能:生成证书请求文件、验证证书请求文件和创设根CA。由于openssl req命令选项较多,所以先各举多少个例证,再汇总给出openssl req的挑选表达。若已熟识openssl req和申明请求相关知识,可径直跳至后文查看openssl req选项整理,若不熟练,提议在此以前向后一步一步阅读。

首先表明下生成证书请求要求什么样:申请者要求将团结的音讯及其公钥放入证书请求中。但在实操进度中,所急需提供的是私钥而非公钥,因为它会自动从私钥中领取公钥。其余,还索要将提供的数据开始展览数字签字(使用单向加密),保险该证件请求文件的完整性和1致性,幸免外人盗窃后进行曲解,比如黑客将为www.baidu.com所申请的证件请求文件中的集团名改成对方的集团名称,若是可以篡改成功,则签署该证件请求时,所揭露的注脚新闻元帅成为旁人音讯。

因此首先步就是先创建出私钥pri_key.pem。其实私钥文件是非不可缺少的,因为openssl req在急需它的时候会自行创造在特定的门路下,此处为了比方表达,所以创造它。

[[email protected] tmp]# openssl genrsa -out pri_key.pem

(壹).依照私钥pri_key.pem生成2个新的注解请求文件。在那之中"-new"表示新生成一个新的证件请求文件,"-key"钦定私钥文件,"-out"钦点输出文件,此处输出文件即为证书请求文件。

[[email protected] 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 []:.

在敲下回车键后,暗许会进来互相情势让你提供你个人的新闻,供给专注的是,假设有个别消息不想填能够选用使用默许值,也得以采纳留空不填,直接回车将选择选用暗中认可值,输入点"."将代表该消息项留空。但一些项是必填项,不然今后注明签署时将停业。如"Common Name",它表示的是为哪个域名、子域名或哪个主机申请证书,今后声明请求被签署后将只好动用于"Common Name"所钦命的地点。具体哪些必填项还供给看所使用的安顿文件(私下认可的布局文件为/etc/pki/tls/openssl.cnf)中的定义,此处临时不研商安顿相关内容,仅提供Common Name就可以。

而外"-new"选项,使用"-newkey"选项也能创建证书请求文件,此处暂不如如表明"-newkey"的用法,后文少禽有示范。

(二).查看证书请求文件内容。

后日曾经变化了三个新的注解请求文件req一.csr。查看下该证件请求文件的原委。

[[email protected] 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-----

更切实的能够应用openssl req命令查看。命令如下,当中"-in"选项钦点的是证书请求文件。

[[email protected] 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-----

查看请求文件时,能够组合别的多少个选项输出特定的内容。"-text"选项表示以文本格式输出证书请求文件的剧情。

[[email protected] 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-----

将"-text"和"-noout"结合使用,则只输出证书请求的文件尾部分。

[[email protected] 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部分的原委。

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

也足以利用"-pubkey"输出证书请求文件中的公钥内容。借使从报名证书请求时所提供的私钥中提抽出公钥,那两段公钥的开始和结果是完全1致的。

[[email protected] 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-----

[[email protected] 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",它代表使用的是哪个种类数字签字算法。暗中同意使用的是sha一,还帮忙md5、sha51二等,更加多可援救的签名算法见"openssl dgst --help"中所列出内容。举例此处钦赐md伍算法。

[[email protected] tmp]# openssl req -new -key pri_key.pem -out req2.csr -md5

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

(四).验证请求文件的数字签字,那样能够作证出注明请求文件是或不是被篡改过。下边的命令中"-verify"选项表示验证证书请求文件的数字签名。

[[email protected] 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"选项即可。

[[email protected] tmp]# openssl req -verify -in req2.csr -noout
verify OK

(5).自签订契约证书,可用于自行建造根CA时。

采纳openssl req自签署证书时,要求动用"-x50九"选项,由于是签订契约证书请求文件,所以可以钦定"-days"内定所揭破的证书限制期限。

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

出于openssl req命令的基本点功用是创办和治本证书请求文件,所以并未有提供对注解文件的田间管理本领,暂且也就只可以通过cat来查看证书文件CA一.crt了。

[[email protected] 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-----

骨子里,"-x50九"选项和"-new"或"-newkey"合作使用时,能够不点名证书请求文件,它在自签约进程上将要内部存款和储蓄器中机动创立证书请求文件,当然,既然要创造证书请求文件,就供给人工输入申请者的新闻了。比如:

[[email protected] tmp]# openssl req -new -x509 -key pri_key.pem -out CA1.crt -days 365

事实上,使用"-x50玖"选项后,"-new"或"-newkey"将意味创设三个申明文件而不是三个证件请求文件。

(六).让openssl req自动创立所需的私钥文件。

在前面的兼具例子中,在供给私钥的时候都分明使用了"-key"选项提供私钥。其实只要不提供,openssl req会在其他供给私钥的地点活动成立私钥,并保留在一定的岗位,暗中认可的保存地点为当前目录,文件名字为privkey.pem,具体保存的职位和文件名由配置文件(默以为/etc/pki/tls/openssl.cnf)决定,此处不研究该公文。当然,openssl req命令的"-keyout"选项可以钦定私钥保存位置。

例如:

[[email protected] 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"选项禁止加密私钥文件。

[[email protected] 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"选项。

[[email protected] 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。

[[email protected] 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

由此地点1系类的举个例子表明后,想必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类别文章大纲:

它的运用格式为"-newkey arg",在那之中arg的格式为"rsa:numbits",rsa表示创制rsa私钥,numbits表示私钥的长短,假诺不给定长度(即"-newkey rsa")则私下认可从布署文件中读取长度值。其实不仅仅帮忙rsa私钥,只可是今后基本都以用rsa私钥,所以默许就利用rsa。

转载请注解出处:

req(生成证书请求和自行建造CA),opensslreq 伪命令req大约有一个职能:生成证书请求文件、验证证书请求文件和创设根CA。由于openssl req命令选...

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

在前头的具备例子中,在急需私钥的时候都显著利用了"-key"选项提供私钥。其实固然不提供,openssl req会在任何索要私钥的地点活动创设私钥,并保存在特定的职位,暗中认可的保留地点为当前目录,文件名称为privkey.pem,具体保存的岗位和文件名由配置文件(默以为/etc/pki/tls/openssl.cnf)决定,此处不切磋该公文。当然,openssl req命令的"-keyout"选项可以内定私钥保存地方。

(陆).让openssl req自动创造所需的私钥文件。

还是能只输出subject部分的始末。

出于openssl req命令的基本点意义是创制和治本证书请求文件,所以未有提供对申明文件的保管力量,权且也就不得不通过cat来查看证书文件CA1.crt了。

更具体的能够动用openssl req命令查看。命令如下,在那之中"-in"选项钦命的是表明请求文件。

在敲下回车键后,私下认可会进入互相格局让您提供您个人的新闻,须要留意的是,假诺某个消息不想填能够选择选择默许值,也足以选用留空不填,间接回车将挑选使用私下认可值,输入点"."将象征该音讯项留空。但有个别项是必填项,不然以后申明签署时将退步。如"Common Name",它意味着的是为哪个域名、子域名或哪个主机申请证书,今后注解请求被签署后将不得不使用于"Common Name"所钦点的地方。具体怎么样必填项还须要看所选取的布局文件(暗中同意的布局文件为/etc/pki/tls/openssl.cnf)中的定义,此处暂且不切磋布置相关内容,仅提供Common Name就能够。

(壹).依照私钥pri_key.pem生成四个新的证书请求文件。当中"-new"表示新生成1个新的证件请求文件,"-key"内定私钥文件,"-out"钦命输出文件,此处输出文件即为证书请求文件。

伪命令req大约有三个效益:生成证书请求文件、验证证书请求文件和开创根CA。由于openssl req命令选项较多,所以先各举多少个例子,再聚焦给出openssl req的挑选表明。若已熟练openssl req和表明请求相关文化,可平素跳至后文翻看openssl req选项整理,若不熟悉,指出从前向后一步一步阅读。

翻开请求文件时,可以构成别的多少个选用输出特定的剧情。"-text"选项表示以文本格式输出证书请求文件的从头到尾的经过。

实质上,"-x50九"选项和"-new"或"-newkey"合营使用时,能够不钦点证书请求文件,它在自签定进度团长在内存中自动创设证书请求文件,当然,既然要成立证书请求文件,就须求人工输入申请者的消息了。举个例子:

通过上边1系类的举个例子说明后,想必openssl req的各中央选项的用法都通了。从地点的言传身教中也意识了,openssl req平常会借助于配置文件(暗中认可为/etc/pki/tls/openssl.cnf)中的值。所以,先将openssl req的下令用法计算下,再轻便表明下布置文件中和req有关的源委。

小心到证书请求文件的底部分有1项是"Signature Algorithm",它象征使用的是哪个种类数字签字算法。暗中认可使用的是sha一,还支持md伍、sha512等,越多可支撑的具名算法见"openssl dgst --help"中所列出内容。比如此处钦定md五算法。

[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

故而首先步正是先成立出私钥pri_key.pem。其实私钥文件是非不可缺少的,因为openssl req在必要它的时候会活动创造在一定的路线下,此处为了例如表达,所以创立它。

"-newkey"选项和"-new"选项类似,只可是"-newkey"选项能够一向钦点私钥的算法和尺寸,所以它首要用在openssl req自动创造私钥时。

[root@xuexi tmp]# openssl req -verify -in req2.csr -noout
verify OK
[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-----
[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 []:.
[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

运用openssl req自签署证书时,须求利用"-x50九"选项,由于是签订契约证书请求文件,所以能够钦命"-days"钦命所公布的证书限期。

实在,使用"-x50九"选项后,"-new"或"-newkey"将意味着创造一个证件文件而不是1个证件请求文件。

也能够使用"-pubkey"输出证书请求文件中的公钥内容。假设从报名证书请求时所提供的私钥中领到出公钥,那两段公钥的内容是完全一致的。

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         :显示操作执行的详细信息

先是表达下生成证书请求供给什么样:申请者须求将协和的音信及其公钥放入证书请求中。但在实操进度中,所急需提供的是私钥而非公钥,因为它会自行从私钥中领到公钥。其它,还须要将提供的数额开始展览数字签字(使用单向加密),保险该证件请求文件的完整性和1致性,幸免别人盗窃后展开曲解,比如黑客将为www.baidu.com所申请的注脚请求文件中的企业名改成对方的小卖部名称,假如能够篡改成功,则签署该证件请求时,所发表的证书音讯少校成为别人新闻。

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

只是,openssl req在活动创造私钥时,将连接加密该私钥文件,并提示输入加密的密码。能够动用"-nodes"选项禁止加密私钥文件。

本文由68399皇家赌场发布于集成经验,转载请注明出处:皇家国际娱乐生成证书请求和自建CA

关键词: 68399皇家赌场

上一篇:皇家88平台登录秒就可理解,代码片段

下一篇:没有了

最火资讯