1. 生成 CA 根证书(Root CA)
1.1. 生成 CA 根私钥
首先,生成一个加密的根证书私钥,供后续生成根证书使用:
openssl genpkey -algorithm RSA -out ca.key -aes256
ca.key
是根证书的私钥文件,-aes256
表示使用 AES 256 加密。
1.2. 生成 CA 根证书
使用生成的根证书私钥来创建一个自签名的根证书:
openssl req -key ca.key -new -x509 -out ca.crt -days 3650
ca.crt
是根证书文件,-days 3650
指定有效期为 10 年。在此过程中,你将被要求提供一些证书信息(如国家、组织等)。
2. 生成服务端证书(Server Certificate)
2.1. 生成服务端私钥
openssl genpkey -algorithm RSA -out server.key -aes256
server.key
是服务端私钥。
2.2. 生成服务端证书签名请求(CSR)
openssl req -key server.key -new -out server.csr
server.csr
是服务端的证书签名请求文件,之后将用根证书进行签发。
2.3. 使用根证书签发服务端证书
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 3650
server.crt
是服务端证书文件。-CAcreateserial
会自动生成一个序列号文件(ca.srl
)。
3. 生成客户端证书(Client Certificate)
3.1. 生成客户端私钥
openssl genpkey -algorithm RSA -out client.key -aes256
client.key
是客户端私钥。
3.2. 生成客户端证书签名请求(CSR)
openssl req -key client.key -new -out client.csr
client.csr
是客户端的证书签名请求文件,之后将用根证书进行签发。
3.3. 使用根证书签发客户端证书
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 3650
client.crt
是客户端证书文件。
4. 验证生成的证书
4.1. 验证服务器证书
使用根证书验证服务器证书是否正确签发:
openssl verify -CAfile ca.crt server.crt
如果输出
server.crt: OK
,则表示服务器证书正确。
4.2. 验证客户端证书
使用根证书验证客户端证书是否正确签发:
openssl verify -CAfile ca.crt client.crt
如果输出
client.crt: OK
,则表示客户端证书正确。
评论区