现在,我们是 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