OpenSSL Cookbook 3——證書註冊請求(CSR)

英文版地址:https://www.feistyduck.com/library/openssl-cookbook/online/ch-openssl.html

創建CSR
    一旦有了私鑰,就可以繼續創建證書註冊請求(CSR)。這是要求CA簽署證書的正式請求,它包含請求證書實體的公鑰和有關實體的一些信息,這些數據都將是證書的一部分。CSR總是用它所攜帶的公鑰對應的私鑰簽名。

    CSR創建通常是一個交互過程,在這一過程中,你將提供證書所需的一些信息。仔細閱讀由OpenSSL工具給出的說明;如果你想一個字段是空的,你必須輸入一個點而不是僅僅按下回車。因爲回車代表使用CSR領域的默認值。

下面是生成CSR的例子:

$ openssl req -new -key fd.key -out fd.csr
Enter pass phrase for fd.key: ******
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) [AU]:GB
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:London
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Feisty Duck Ltd
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:www.feistyduck.com
Email Address []:[email protected]
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

CSR生成之後,你可以自己簽署證書或發送到公共CA並要求他們簽署證書。這兩種方法將會在後續部分詳細講解。但是在簽署證書之前我們通常會用下面的方法查看並仔細檢查CSR是否正確。

$ openssl req -text -in fd.csr -noout
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=GB, L=London, O=Feisty Duck Ltd, CN=www.feistyduck.com↩
/[email protected]
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:b7:fc:ca:1c:a6:c8:56:bb:a3:26:d1:df:e4:e3:
[16 more lines…]
d1:57
Exponent: 65537 (0x10001)
Attributes:
a0:00
Signature Algorithm: sha1WithRSAEncryption
a7:43:56:b2:cf:ed:c7:24:3e:36:0f:6b:88:e9:49:03:a6:91:
[13 more lines…]
47:8b:e3:28

通過已有證書創建CSR

除了上面這種CSR的生成方法,我們也可以從已有的證書中生產新的CSR。如果你的目的僅僅是更新證書,並且不想對提交的信息進行任何更改,那麼你可以使用以下命令創建一個全新的CSR:

$ openssl x509 -x509toreq -in fd.crt -out fd.csr -signkey fd.key

無人值守生成CSR
如果你不想手動輸入任何信息或者說想全自動完成CSR的生成工作,那麼你可以使用無人值守的CSR生成方式。例如,假設我們要爲www.feistyduck.com自動生成一個CSR,首先我們得創建配置文件fd.cnf,內容如下:

[req]
prompt = no
distinguished_name = dn
req_extensions = ext
input_password = PASSPHRASE
[dn]
CN = www.feistyduck.com
emailAddress = [email protected]
O = Feisty Duck Ltd
L = London
C = GB
[ext]
subjectAltName = DNS:www.feistyduck.com,DNS:feistyduck.com

有了這個配置文件後我們就可以通過下面這個命令自動生成CSR了

$ openssl req -new -config fd.cnf -key fd.key -out fd.csr

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章