現在,我們是 root CA 了,我們已經準備好爲我們的客戶籤數字證書,從 CA 獲取數字證書需要 3 個步驟:
1.生成公開/私有密鑰對
我們運行以下命令來生成 RSA 密鑰對。你同時需要提供一個密碼來保護你的密鑰(我這裏設置的密碼是 123456)。密鑰會被保存在 server.key 文件中。
openssl genrsa -des3 -out server.key 1024
2.生成證書籤名請求
一旦公司擁有了密鑰文件,它應當生成證書籤名請求(CSR)。CSR 將被髮送給 CA,CA 會爲該請求生成證書(通常在確認 CSR 中的身份信息匹配後)。請將 qy-bb.club 作爲證書請求的通用名,並且請記住自己都輸了些啥。
openssl req -new -key server.key -out server.csr -config openssl.cnf
3.生成證書
生成證書。CSR 文件需要擁有 CA 的簽名來構成證書。在現實世界中,CSR 文件常常被髮送給可信任的 CA 簽名。本實驗中,我們將使用我們自己的 CA 來生成證書:
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
如果 OpenSSL 拒絕生成證書,那很可能是因爲你請求中的名字與 CA 所持有的不匹配。匹配規則在配置文件中指定([policy match]處),你可以更改名字也可以更改規則。都做到這了,就改規則吧。
此時的目錄結構如下:
.
|-- ca.crt
|-- ca.key
|-- demoCA
| |-- certs
| |-- crl
| |-- index.txt
| |-- newcerts
| `-- serial
|-- openssl.cnf
|-- server.crt
|-- server.csr
`-- server.key