首頁 運維 linux運維 偽指令req功能的詳細介紹

偽指令req功能的詳細介紹

Jul 18, 2017 pm 01:55 PM
openssl 求和

        偽指令req大致上有3個功能:產生憑證要求檔案、驗證憑證要求檔案和建立根CA。由於openssl req指令選項較多,所以先各舉幾個例子,再集中給出openssl req的選項說明。

首先說明下產生憑證要求需要什麼:申請者需要將自己的資訊及其公鑰放入憑證請求中。但在實際操作過程中,所需要提供的是私鑰而非公鑰,因為它會自動從私鑰提取公鑰。另外,還需要將提供的資料進行數位簽章(使用單向加密),保證該憑證要求文件的完整性和一致性,防止他人盜取後進行篡改,例如駭客將為www.baidu.com所申請的證書請求文件中的公司名改成對方的公司名稱,如果能夠篡改成功,則簽署該證書請求時,所頒發的證書資訊中將變成他人資訊。

所以第一步就是先建立出私鑰pri_key.pem。其實私鑰檔案是非必需的,因為openssl req在需要它的時候會自動創建在特定的路徑下,這裡為了舉例說明,所以創建它。

[root@xuexi tmp]# openssl genrsa -out pri_key.pem
登入後複製

(1).根據私鑰pri_key.pem產生一個新的憑證請求檔。其中"-new"表示新產生一個新的憑證要求文件,"-key"指定私鑰文件,"-out"指定輸出文件,此處輸出文件即為憑證要求文件。

[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    # 下面两项几乎不用考虑,留空即可
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"的用法,後文會有範例。

(2).查看憑證要求檔案內容。

現在已經產生了一個新的憑證要求檔案req1.csr。查看下該憑證要求文件的內容。

[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-----
登入後複製

更具體的可以使用openssl req指令來檢視。指令如下,其中"-in"選項指定的是憑證請求檔。

[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-----
登入後複製

查看請求檔時,可以結合其他幾個選項來輸出特定的內容。 "-text"選項表示以文字格式輸出憑證要求文件的內容。

[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:00Signature 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"結合使用,則只輸出憑證要求的檔案頭部分。

[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:00Signature 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.csrverify 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).让openssl req自动创建所需的私钥文件。

在前面的所有例子中,在需要私钥的时候都明确使用了"-key"选项提供私钥。其实如果不提供,openssl req会在任何需要私钥的地方自动创建私钥,并保存在特定的位置,默认的保存位置为当前目录,文件名为privkey.pem,具体保存的位置和文件名由配置文件(默认为/etc/pki/tls/openssl.cnf)决定,此处不讨论该文件。当然,openssl req命令的"-keyout"选项可以指定私钥保存位置。

例如:

[root@xuexi tmp]# openssl req -new -out req3.csrGenerating 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 
 [-extensions section]
[-reqexts section] [-utf8] [-nameopt] [-reqopt] ---newkey args:类似于选项,创建一个新的证书请求,并创建私钥。args的格式是------[dgst]          :指定对创建请求时提供的申请者信息进行数字签名时的单向加密算法,如-md5/-sha1/----days n       :指定自签名证书的有效期限,默认30天,需要和----subj args    :替换或自定义证书请求时需要输入的信息,并输出修改后的请求信息。args的格式为,则表示该项留空。其中可识别type(-------config filename :指定req的配置文件,指定后将忽略所有的其他配置文件。如果不指定则默认使用/etc/pki/tls/-batch           :非交互模式,直接从配置文件(默认/etc/pki/tls/openssl.cnf)中读取证书请求所需字段信息。但若不指定-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            = 2048default_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                 = 2countryName_max                 = 2stateOrProvinceName             = State or Province Name (full name)
localityName                    = Locality Name (eg, city)
localityName_default    = Default City0.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                  = 64emailAddress                    = Email Address
emailAddress_max               = 64
登入後複製

以上是偽指令req功能的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Nginx如何使用OpenSSL函式庫實現更安全的通訊 Nginx如何使用OpenSSL函式庫實現更安全的通訊 Jun 10, 2023 pm 01:51 PM

Nginx是一款廣泛應用於Web伺服器、負載平衡器、反向代理程式和快取的軟體。在網路傳輸過程中,資料的加密和安全性越來越受到關注。為了提高通訊的安全性,可以使用OpenSSL函式庫來實現SSL/TLS協議,從而保護敏感資料的傳輸。本文將說明如何使用Nginx與OpenSSL函式庫實現更安全的通訊。安裝與設定OpenSSL函式庫首先,需要在伺服器上安裝OpenSSL函式庫。可以使

在Python中的絕對元組求和 在Python中的絕對元組求和 Sep 12, 2023 pm 07:37 PM

在Python中,元組是不可變的序列,可以儲存不同類型的多個元素。它們通常用於表示相關值的集合。元組求和涉及將兩個或多個元組的相應元素相加以產生新的元組。然而,在某些場景下,可能需要計算元素的絕對和而不是傳統的和。在這篇文章中,我們將探討如何在Python中執行絕對元組求和。傳統元組求和在深入研究絕對元組求和之前,讓我們先了解如何進行傳統的元組求和。給定兩個長度相同的元組,我們可以使用簡單的Python循環或列表推導來計算對應元素的和 −deftuple_sum(t1,t2):

你知道Word表格怎麼求和嗎 你知道Word表格怎麼求和嗎 Mar 21, 2024 pm 01:10 PM

有時候,我們在Word表格中會經常遇到計數的問題;通常遇到這樣的問題,大部分同學都回把Word表格複製到Excel中來計算;還有一部分同學會默默地拿起計算器去算。那有沒有快速的方法來計算呢?當然有啊,其實在Word中也是可以計算求和的。那麼,你知道該怎麼操作嗎?今天,我們就來一起來看吧!廢話不多說,有需要的朋友趕緊收藏起來吧!步驟詳情:1、首先,我們開啟電腦上的Word軟體,開啟需要處理的文件。 (如圖)2、接著,我們將遊標定位在求和數值所在的儲存格上(如圖);然後,我們點選【選單列

如何使用 OpenSSL 產生 MySQL SSL 憑證 如何使用 OpenSSL 產生 MySQL SSL 憑證 Sep 09, 2023 pm 02:12 PM

如何使用OpenSSL產生MySQLSSL憑證簡介:MySQL是一種廣泛應用的關係型資料庫系統,在實際生產環境中使用SSL(SecureSocketsLayer)協定進行加密通訊是非常重要的。本文將介紹如何使用OpenSSL工具產生MySQLSSL證書,並提供對應的程式碼範例。步驟:安裝OpenSSL:首先,確保電腦上已安裝O

CentOS 7下OpenBLAS安裝及CentOS 7 OpenSSL安裝 CentOS 7下OpenBLAS安裝及CentOS 7 OpenSSL安裝 Feb 10, 2024 am 11:45 AM

LINUX作為一個開源作業系統,有著廣泛的應用和使用者群體,CentOS7是LINUX的一個分支版本,它是基於RedHatEnterpriseLinux(RHEL)原始碼構建的,具有高度的穩定性和安全性,在CentOS7上安裝和配置OpenBLAS和OpenSSL是許多開發者和系統管理員的常見需求,本文將詳細介紹如何在CentOS7上安裝和設定OpenBLAS和OpenSSL。 OpenBLAS是一個開源的基於BLAS(BasicLinearAlgebraSubprograms)介面的高效能數學庫,

求交錯符號等差數列的和 求交錯符號等差數列的和 Sep 16, 2023 pm 05:01 PM

算術級數(AP)是一系列數字,其中連續兩個項之間的差異相同。差是從第一個項減去第二個項來計算的。讓我們以一個範例序列來了解AP,5,7,9,11,13,15,...這個算術級數的公差(d)是2。這意味著每個後續元素與前一個元素的差為2。這個序列的第一項(a)是5。找到第n項的一般公式是a{n}=a+(n-1)(d)在這個問題中,我們給了一個AP,我們需要找到交替帶符號平方的級數的和,級數將如下圖所示,a12-a22+a32-a42+a52+......讓我們舉一個例子,以便更清楚地理解&amp

使用PHP中的array_sum()函數求數組中元素的和 使用PHP中的array_sum()函數求數組中元素的和 Nov 18, 2023 am 11:20 AM

標題:使用PHP中的array_sum()函數求取陣列元素的和PHP是一種廣泛使用的伺服器端腳本語言,它提供了眾多內建函數,可以簡化開發過程並提高效率。其中,array_sum()函數是一個非常實用的函數,可以用來計算數組中元素的和。在本文中,我們將學習如何使用array_sum()函數,並給出具體的程式碼範例。首先,我們需要了解array_sum()函數的使

如何進行OpenSSL基礎中的加密及解密 如何進行OpenSSL基礎中的加密及解密 May 22, 2023 am 09:20 AM

說到OpenSSL,首先要提的是SSL。我們在日常上網的時候,恐怕沒有人願意被網路上的其他人監聽到我們的上網行為。因此就需要一種協定為我們的網路通訊保駕護航。 SSL協定是基於這樣的工作背景開發的,它能使用戶跟伺服器應用之間的通訊不被攻擊者竊聽,並且始終對伺服器進行認證,可選擇的對使用者進行認證。 SSL協定通常建立在可靠的傳輸層協定(TCP)之上。 SSL協定的優點在於它是與應用層協定獨立無關的,高層的應用層協定(例如:HTTP,FTP,TELNET等)能透明地建立於SSL協定之上。 SSL協定在應用

See all articles