偽命令req大致有3個(gè)功能:生成證書(shū)請(qǐng)求文件、驗(yàn)證證書(shū)請(qǐng)求文件和創(chuàng)建根CA。由于openssl req命令選項(xiàng)較多,所以先各舉幾個(gè)例子,再集中給出openssl req的選項(xiàng)說(shuō)明。若已熟悉openssl req和證書(shū)請(qǐng)求相關(guān)知識(shí),可直接跳至后文查看openssl req選項(xiàng)整理,若不熟悉,建議從前向后一步一步閱讀。

首先說(shuō)明下生成證書(shū)請(qǐng)求需要什么:申請(qǐng)者需要將自己的信息及其公鑰放入證書(shū)請(qǐng)求中。但在實(shí)際操作過(guò)程中,所需要提供的是私鑰而非公鑰,因?yàn)樗鼤?huì)自動(dòng)從私鑰中提取公鑰。另外,還需要將提供的數(shù)據(jù)進(jìn)行數(shù)字簽名(使用單向加密),保證該證書(shū)請(qǐng)求文件的完整性和一致性,防止他人盜取后進(jìn)行篡改,例如黑客將為www.baidu.com所申請(qǐng)的證書(shū)請(qǐng)求文件中的公司名改成對(duì)方的公司名稱,如果能夠篡改成功,則簽署該證書(shū)請(qǐng)求時(shí),所頒發(fā)的證書(shū)信息中將變成他人信息。

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

所以第一步就是先創(chuàng)建出私鑰pri_key.pem。其實(shí)私鑰文件是非必需的,因?yàn)閛penssl req在需要它的時(shí)候會(huì)自動(dòng)創(chuàng)建在特定的路徑下,此處為了舉例說(shuō)明,所以創(chuàng)建它。

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

(1).根據(jù)私鑰pri_key.pem生成一個(gè)新的證書(shū)請(qǐng)求文件。其中"-new"表示新生成一個(gè)新的證書(shū)請(qǐng)求文件,"-key"指定私鑰文件,"-out"指定輸出文件,此處輸出文件即為證書(shū)請(qǐng)求文件。

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

[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.comEmail Address []:
 
Please enter the following 'extra' attributes    # 下面兩項(xiàng)幾乎不用考慮,留空即可
to be sent with your certificate request
A challenge password []:.
An optional company name []:.

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

在敲下回車鍵后,默認(rèn)會(huì)進(jìn)入交互模式讓你提供你個(gè)人的信息,需要注意的是,如果某些信息不想填可以選擇使用默認(rèn)值,也可以選擇留空不填,直接回車將選擇使用默認(rèn)值,輸入點(diǎn)"."將表示該信息項(xiàng)留空。但某些項(xiàng)是必填項(xiàng),否則未來(lái)證書(shū)簽署時(shí)將失敗。如"Common Name",它表示的是為哪個(gè)域名、子域名或哪個(gè)主機(jī)申請(qǐng)證書(shū),未來(lái)證書(shū)請(qǐng)求被簽署后將只能應(yīng)用于"Common Name"所指定的地址。具體哪些必填項(xiàng)還需要看所使用的配置文件(默認(rèn)的配置文件為/etc/pki/tls/openssl.cnf)中的定義,此處暫且不討論配置相關(guān)內(nèi)容,僅提供Common Name即可。

除了"-new"選項(xiàng),使用"-newkey"選項(xiàng)也能創(chuàng)建證書(shū)請(qǐng)求文件,此處暫不舉例說(shuō)明"-newkey"的用法,后文會(huì)有示例。

(2).查看證書(shū)請(qǐng)求文件內(nèi)容。

現(xiàn)在已經(jīng)生成了一個(gè)新的證書(shū)請(qǐng)求文件req1.csr。查看下該證書(shū)請(qǐng)求文件的內(nèi)容。

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

[root@xuexi tmp]# cat req1.csr-----BEGIN CERTIFICATE REQUEST-----             # 證書(shū)請(qǐng)求的內(nèi)容
MIIBgDCB6gIBADBBMQswCQYDVQQGEwJDTjELMAkGA1UECAwCRkoxCzAJBgNVBAcM
AlhNMRgwFgYDVQQDDA93d3cueW91d2FudC5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
gY0AMIGJAoGBAMbx9bfsC0GTn7DijfGFs56Fb8atX9ABRDE/wmE74jXjdfbH4ZOg
Te0Orlu5pA4jqXDgSLzlQvjD6QsyhToyvtyQbgGSfXSVOPcgfAohDNo9t6+mnvs/5rFQJ1+uI6gsLMbwQBJidLGnM1pOvFo2671Vm2jewDLVweGP5wmIfDyLAgMBAAGg
ADANBgkqhkiG9w0BAQUFAAOBgQAqKYjNKKpNCvwDNeDeYynOx1XD/OYgAU43Sq03
aRUcKenqICkvkXkUE+H0lYMtXcDL/rgDyjlKvwartgZ/ngoKSwtXhd4UivII2hNN
jolE3gfe8KGjMpnX/8oxkJIoSTETqee+11ez8E2fya1DwoQnKpXjTt5qya8VWflt
DG8WmA==
-----END CERTIFICATE REQUEST-----

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

更具體的可以使用openssl req命令查看。命令如下,其中"-in"選項(xiàng)指定的是證書(shū)請(qǐng)求文件。

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

[root@xuexi tmp]# openssl req -in req1.csr-----BEGIN CERTIFICATE REQUEST-----             # 證書(shū)請(qǐng)求的內(nèi)容
MIIBgDCB6gIBADBBMQswCQYDVQQGEwJDTjELMAkGA1UECAwCRkoxCzAJBgNVBAcM
AlhNMRgwFgYDVQQDDA93d3cueW91d2FudC5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
gY0AMIGJAoGBAMbx9bfsC0GTn7DijfGFs56Fb8atX9ABRDE/wmE74jXjdfbH4ZOg
Te0Orlu5pA4jqXDgSLzlQvjD6QsyhToyvtyQbgGSfXSVOPcgfAohDNo9t6+mnvs/5rFQJ1+uI6gsLMbwQBJidLGnM1pOvFo2671Vm2jewDLVweGP5wmIfDyLAgMBAAGg
ADANBgkqhkiG9w0BAQUFAAOBgQAqKYjNKKpNCvwDNeDeYynOx1XD/OYgAU43Sq03
aRUcKenqICkvkXkUE+H0lYMtXcDL/rgDyjlKvwartgZ/ngoKSwtXhd4UivII2hNN
jolE3gfe8KGjMpnX/8oxkJIoSTETqee+11ez8E2fya1DwoQnKpXjTt5qya8VWflt
DG8WmA==
-----END CERTIFICATE REQUEST-----

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

查看請(qǐng)求文件時(shí),可以結(jié)合其他幾個(gè)選項(xiàng)輸出特定的內(nèi)容。"-text"選項(xiàng)表示以文本格式輸出證書(shū)請(qǐng)求文件的內(nèi)容。

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

[root@xuexi tmp]# openssl req -in req1.csr -text
Certificate Request:                                            # 此為證書(shū)請(qǐng)求文件頭
    Data:
        Version: 0 (0x0)        Subject: C=CN, ST=FJ, L=XM, CN=www.youwant.com          # 此為提供的個(gè)人信息,注意左側(cè)標(biāo)頭為"Subject",這是很重要的一項(xiàng)
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption                 # 使用的公鑰算法
                Public-Key: (1024 bit)                          # 公鑰的長(zhǎng)度
                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                  # 為請(qǐng)求文件數(shù)字簽名時(shí)使用的算法
         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-----

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

將"-text"和"-noout"結(jié)合使用,則只輸出證書(shū)請(qǐng)求的文件頭部分。

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

[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          # 為請(qǐng)求文件數(shù)字簽名時(shí)使用的算法
         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

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

還可以只輸出subject部分的內(nèi)容。

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

也可以使用"-pubkey"輸出證書(shū)請(qǐng)求文件中的公鑰內(nèi)容。如果從申請(qǐng)證書(shū)請(qǐng)求時(shí)所提供的私鑰中提取出公鑰,這兩段公鑰的內(nèi)容是完全一致的。

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

[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-----

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

[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-----

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

(3).指定證書(shū)請(qǐng)求文件中的簽名算法。

注意到證書(shū)請(qǐng)求文件的頭部分有一項(xiàng)是"Signature Algorithm",它表示使用的是哪種數(shù)字簽名算法。默認(rèn)使用的是sha1,還支持md5、sha512等,更多可支持的簽名算法見(jiàn)"openssl dgst --help"中所列出內(nèi)容。例如此處指定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).驗(yàn)證請(qǐng)求文件的數(shù)字簽名,這樣可以驗(yàn)證出證書(shū)請(qǐng)求文件是否被篡改過(guò)。下面的命令中"-verify"選項(xiàng)表示驗(yàn)證證書(shū)請(qǐng)求文件的數(shù)字簽名。

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

[root@xuexi tmp]# openssl req -verify -in req2.csrverify OK-----BEGIN CERTIFICATE REQUEST-----MIIBgDCB6gIBADBBMQswCQYDVQQGEwJDTjELMAkGA1UECAwCRkoxCzAJBgNVBAcM
AlhNMRgwFgYDVQQDDA93d3cueW91d2FudC5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
gY0

回到openssl系列文章大綱:http://www.cnblogs.com/f-ck-need-u/p/7048359.html

轉(zhuǎn)載請(qǐng)注明出處:http://www.cnblogs.com/f-ck-need-u/p/7113610.html

http://www.cnblogs.com/f-ck-need-u/p/7113610.html