要通过 ssl 连接到远程 mysql 服务器,我们需要创建以下 key
-rwxrwxrwx 1 root root 1.7K Oct 29 15:21 ca-key.pem
-rwxrwxrwx 1 root root 1.3K Oct 29 15:21 ca.pem
-rwxrwxrwx 1 root root 1.2K Oct 29 15:21 client-cert.pem
-rwxrwxrwx 1 root root 1.7K Oct 29 15:21 client-key.pem
-rwxrwxrwx 1 root root 993 Oct 29 15:21 client-req.pem
-rwxrwxrwx 1 root root 1.2K Oct 29 15:21 server-cert.pem
-rwxrwxrwx 1 root root 1.7K Oct 29 15:21 server-key.pem
-rwxrwxrwx 1 root root 993 Oct 29 15:21 server-req.pem
建立安全连接
mysql -u balaji_sri -pXXX --ssl-ca=ca.pem --ssl-key=client-key.pem --ssl-cert=client-cert.pem -h 18.221.222.23
I understand how web ssl works.
(
*servers pub key is encrypted with CA'S private key which is shared to client as ssl key
*browser has all CA'S public key. browser decrypts and gets servers pub key
*client generates a random number and encrypts with servers public key
*server is able to decrypt that with its own private key
*rest of connection is handled with symmetrical encryption with the random number
)
有人可以用类似的方式解释上面提到的每个键的作用。 (ca-key.pem, ca.pem, client-cert.pem, client-key.pem, client-req.pem, server-cert.pem, server-key.pem, server-req.pem)
最佳答案
这个问题可能会在 crypto.SX 中引起更多兴趣或 security.SX .无论如何,
*servers pub key is encrypted with CA'S private key which is shared to client as ssl key
嗯……没有。 使用公钥加密算法,用公钥加密,用私钥解密。 没有人可以用私钥加密。如果公钥算法也支持数字签名(例如RSA),则可以使用其私钥进行签名,每个人都可以使用签名者的公钥来验证签名(同样,您不能使用公钥进行签名)。
根据您的问题,我的猜测如下(重新订购的商品):
ca-key.pem
:认证机构私钥(应该加密!)ca.pem
:您的权威根证书(使用ca-key.pem
自签名)client-key.pem
:客户端私钥client-req.pem
:请求认证机构签名(aka.csr)client-cert.pem
:证书颁发机构对之前请求的响应server-key.pem
:与client-key.pem
相同,但用于服务器server-req.pem
:和client-req.pem
一样,但是是服务端server-cert.pem
: 与client-cert.pem
相同,但用于服务器
您可能有兴趣关注this tutorial以更好地了解 X509 证书。
关于mysql - 需要了解不同 pem key 的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58605382/