6 votes

MySQL SSL : échec de SSL_CTX_set_default_verify_paths

Cela fait quelques jours que j'essaie de faire fonctionner SSL avec MySQL.

Voici la configuration que j'ai actuellement :

MySQL 5.7.17-0ubuntu0.16.04.1

Voici l'erreur que je reçois lorsque je démarre le serveur MySQL

La configuration de SSL a échoué en raison de l'erreur suivante de la bibliothèque SSL : SSL_CTX_set_default_verify_paths a échoué.

Fichier de configuration :

sl-ca = /etc/mysql-ssl/ca-cert.pem
ssl-cert = /etc/mysql-ssl/server-cert.pem
ssl-key = /etc/mysql-ssl/server-key.pem
ssl

Je lis ce poste , Chown les fichiers, vérifié pour voir si SELinux a été activé (non installé)

J'ai également exécuté ces commandes et obtenu les réponses suivantes :

sudo -u mysql cat /etc/mysql-ssl/ca-cert.pem
-----BEGIN CERTIFICATE-----

sudo -u mysql cat /etc/mysql-ssl/server-cert.pem
-----BEGIN CERTIFICATE-----

sudo -u mysql cat /etc/mysql-ssl/server-key.pem
-----BEGIN RSA PRIVATE KEY-----

A ce stade, je suis à court d'idées pour savoir vers quoi me tourner. Quelqu'un peut-il m'indiquer la bonne direction ?

4voto

smax Points 191
  1. Utiliser votre compte système/service valide pour votre base de données (mysql)
  2. définir le propriétaire de ce compte de service de base de données (mysql)
  3. vérifier le chemin valide
  4. vérifier les certs openssl
  5. définir des droits d'accès corrects et utiles (esprit. 0660 à cause des fichiers non exécutables)
  6. vérifiez les paramètres de selinux ou d'apparmor ! ils peuvent bloquer l'accès !

Ce qui suit devrait montrer les informations sur le fichier et définir l'utilisateur et les droits RW corrects. exécuter en tant que root ou ajouter sudo au début de chaque :

echo # show all entries of my.cnf (should 4 without # also wrong config settings)
cat /etc/mysql/my.cnf | grep ssl;
echo # Folder checkup (should list your PEM-Files)
ls -al /etc/mysql-ssl/;
echo # set all PEM-Files to user mysql
chown -R mysql:root /etc/mysql-ssl/*.pem
echo # set all PEM-Files to read-only from User (oder or use 660 )
chmod -R 600 /etc/mysql-ssl/*.pem
echo # restart mariaDB wait 5 secounds and show SSL errors
service mysql restart; sleep 5; service mysql status | grep SSL_CTX_set_default_verify_paths

J'ai créé un groupe séparé (ssl-certs) sur mon serveur Ubuntu, ajouté mysql à ce groupe et défini tous les droits (les deux dossiers - 0750 /files - 0640) en conséquence. Si vous voulez vous assurer que mysql peut accéder aux fichiers, vous pouvez su à mysql et vérifier (en tant que root).

su --shell=/bin/bash mysql
ls -la /path/cert/is/

N'oubliez pas de vérifier tous les chemins : CA, cert, clé privée.

3voto

Matthew Trevor Points 5277

sl-ca = /etc/mysql-ssl/ca-cert.pem devrait être ssl-ca = /etc/mysql-ssl/ca-cert.pem

0voto

likethesky Points 828

J'espère que cela aidera quelqu'un d'autre, j'ai eu besoin de redémarrer apache après avoir mis tous les fichiers sur le disque et défini toutes les bonnes permissions.

0voto

lancejjohnson Points 1638

Comme l'a signalé un autre utilisateur, il y a des erreurs dans le fichier de configuration !

Comme mieux expliqué ici : variables du système du serveur les paramètres du fichier de configuration doivent être :

ssl_ca au lieu de sl-ca
ssl_cert au lieu de ssl-cert
ssl_key au lieu de clé ssl

-4voto

snowmantw Points 562

Pour toute autre personne qui pourrait rencontrer ce problème. J'ai déplacé les fichiers dans le dossier MySQL, j'ai mis le propriétaire en tant que root et les permissions comme 777.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X