mysql - 需要了解不同 pem key 的使用

标签 mysql ssl

要通过 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/

相关文章:

SSL 额外流量?

Python 3.6 SSL - 使用 TLSv1.0 而不是 TLSv1.2 密码 -(2 种身份验证和自签名证书)

mysql - 优化 InnoDB 插入查询

php - 无效几何 MYSQL

wcf - 带有双向 SSL 安全证书的 Silverlight WCF

ssl - 我的软件应该如何处理 future 的 SSL 证书?

c# - 我应该为我的 REST API 的消费者提供客户端证书吗?

mysql - 错误代码: 1292 Truncated incorrect datetime value

php - yii 规则从数据库验证

php - 在 mod 重写中忽略动态路径并保留子路径