简单总结就是:
-
CA自己生成自己的一对密钥(私钥和证书)
-
服务器自己生成私钥,然后用私钥生成CSR
-
客户端自己生成私钥,然后用私钥生成CSR
-
CA用自己的私钥为服务器和客户端的CSR签名,生成它们的证书
最终文件分配:
-
CA拥有:ca.key(私钥)和ca.crt(证书)
-
服务器拥有:server.key(私钥)和server.crt(CA签名的证书)
-
客户端拥有:client.key(私钥)和client.crt(CA签名的证书)
验证过程:
-
服务器用ca.crt验证客户端的client.crt是否由信任的CA签名
-
客户端用ca.crt验证服务器的server.crt是否由信任的CA签名
这就像是:
-
CA是公证处
-
服务器和客户端各自生成自己的身份证申请材料(CSR)
-
公证处(CA)给他们盖章确认(签名),生成正式身份证(证书)
-
双方见面时,都用公证处的公章(ca.crt)验证对方的身份证是否是真的