向客户颁发MySQL服务器的客户端SSL证书 – 这是安全的吗?

我在VPS上安装了MySQL,我将使用它来为客户托pipe多个数据库,他们将从前端使用它们。

我已经强制所有的通信到每个数据库是通过SSL,我会为每个不同的客户生成一套单独的客户端SSL证书/密钥。

我的问题是:MySQL服务器deamon使用相同的SSL服务器证书/密钥与每个不同的客户进行通信。 每个拥有不同客户端证书的客户是否足以确保他们不能窃听彼此与数据库服务器的通信?

简短的回答:是的。

较长的回答:是的,因为客户端和服务器密钥对都涉及交换保证给定事务的nonce会话密钥。 如果客户端B获得了客户端A和服务器之间完整的密文会话,那么她可以解密,如果她有服务器的私钥或客户端A的私钥。 但客户端B只有自己的私钥和服务器的公钥; 这将不会帮助她解密客户端A与服务器的交易。

据我了解,服务器的SSL / TLS连接足以防止窃听。 客户端证书不提供额外的encryption(可能在握手期间除外),它在那里validation客户端。

无论您是否拥有客户端证书,客户端和浏览器都将使用它们都支持的最高级别的encryption进行通信。 客户证书只是确保客户是谁说的。

MySQL服务器使用相同的TLS / SSL证书与所有客户端通信是可以的,因为每个客户端都会有不同的握手。 就像使用Web服务器一样,您可以使用相同的证书与多个客户端通信。