Eu estava lutando com uma mensagem de erro semelhante hoje e aqui está o que descobri.
- A opção "REQUIRE SSL" para o GRANT requer apenas SSL para conexão e não exige que um certificado do lado do cliente seja fornecido.
- A CLI do mysql não lida com SSL como eu esperava. Por exemplo, no MySQL 5.5, o
--ssl
opção não parece realmente habilitar o transporte SSL. - Tive que adicionar a opção
--ssl-cipher=DHE-RSA-AES256-SHA:AES128-SHA
para fazer com que o cliente mysql realmente use SSL e permita a autenticação com o cliente.
Aqui estão as etapas exatas que usei para configurar meu novo usuário:
CREATE USER 'ssl-user'@'%' identified by '<password>';
GRANT USAGE ON *.* TO 'ssl-user'@'%' identified by '<password>' REQUIRE SSL;
GRANT ALL PRIVILEGES ON `your-database`.* TO 'ssl-user'@'%';