Is MySQL port 3306 encrypted, and if no, how can I encrypt it?
Solution 1:
No, by default mysql traffic is not encrypted. Setting up MySQL to work with OpenSSL on a per-connection basis is your best bet. Most binaries are built with SSL support these days, but it's easy enough to check if your version will support it. From the documentation:
To check whether a server binary is compiled with SSL support, invoke it with the --ssl option. An error will occur if the server does not support SSL:
shell> mysqld --ssl --help 060525 14:18:52 [ERROR] mysqld: unknown option '--ssl'
Solution 2:
By default MySQL does not encrypt its client/server communication:
- https://dev.mysql.com/doc/refman/5.6/en/security-guidelines.html
You can setup MySQL to accept connections over SSL and require users to use SSL. Here's the guide for SSL setup:
- https://dev.mysql.com/doc/refman/5.6/en/encrypted-connections.html
MySQL 8:
- https://dev.mysql.com/doc/refman/8.0/en/security-guidelines.html
- https://dev.mysql.com/doc/refman/8.0/en/encrypted-connections.html