Information
All network traffic must use SSL/TLS when traveling over untrusted networks.
SSL/TLS should be enforced on a per-user basis for users which enter the system through the network.
Rationale:
The SSL/TLS-protected MySQL protocol helps to prevent eavesdropping and man-in-the-middle attacks.
Impact:
When SSL/TLS is enforced then clients which do not use SSL will not be able to connect. If the server is not configured for SSL/TLS then accounts for which SSL/TLS is mandatory will not be able to connect.
Solution
Use the ALTER USER statement to require the use of SSL:
ALTER USER 'my_user'@'app1.example.com' REQUIRE X509;
Note: REQUIRE SSL only enforces SSL. There are additional options REQUIRE ISSUER, REQUIRE SUBJECT which can be used to further restrict the connection.
Default Value:
On the server-side SSL is ON by default --ssl (permits but does not require secure connections) and require_secure_transport is OFF (turning ON allows only secure connections)