Obtenir une erreur lors de la tentative d'activation du chiffrement:
[ERROR] SSL error: Unable to get private key from '/etc/mysql/ssl/nginx.key'
[Warning] Failed to set up SSL because of the following SSL library error: Unable to get private key
/etc/mysql/conf.d/encrypt.cnf:
[mysqld]
ssl-ca=/etc/mysql/ssl/nginx.ca
ssl-cert=/etc/mysql/ssl/nginx.crt
ssl-key=/etc/mysql/ssl/nginx.key
La clé est générée comme ça:
openssl req -newkey rsa:4096 -nodes -keyout nginx.key -subj "/C=US/ST=California/L=Sacramento/O=MyOrg/OU=MyDev/CN=MyApp"
L'opssl le vérifie bien.
J'ai essayé de changer les autorisations, les propriétaires, les noms de fichiers, le déplacement vers différents répertoires, la désactivation de SELinux (il est déjà désactivé), la consultation des journaux AppArmor (il ne le bloque pas), la modification de 'BEGIN/END PRIVATE KEY' en 'BEGIN/END RSA PRIVATE KEY '.
Qu'est ce qui ne va pas avec ça?
Ok, il ne suffit pas de changer simplement "BEGIN PRIVATE KEY" en "BEGIN RSA PRIVATE KEY".
Il doit être correctement converti de PKCS # 8 en PKCS # 1 Référence
openssl rsa -in /etc/mysql/ssl/nginx.key -out ~/nginx.key.rsa
En tant que consolidation de mes fausses pistes qui ont aidé les autres:
Bits en mode POSIX et propriétaire du fichier: L'utilisateur mysql doit avoir un accès en lecture à tous les fichiers SSL via des privilèges d'utilisateur ou de groupe. Cela peut signifier chown mysql *.pem
ou en ajoutant ssl-private aux groupes de mysql. ( https://serverfault.com/questions/417390/cannot-setup-mysql-ssl-unable-to-read-certificate )
AppArmor peut couper l'accès aux fichiers. Vous avez besoin de quelque chose comme /etc/mysql/**
dans /etc/apparmor.d/usr.sbin/mysqld
. Vérifier /var/log/kern.log
et considérez aa-complain /usr/sbin/mysqld
pour obtenir des erreurs plutôt que des refus. ( https://forums.mysql.com/read.php?26,393495,393636#msg-393636 )
Contenu de fichier mal formaté. La bibliothèque SSL est très mauvaise pour se plaindre avec précision. Assurez-vous que l'ensemble complet de clés fonctionne sur, disons, un site Web.
Le fichier est entièrement manquant. Encore une fois, dans le message d'erreur, aucune distinction n'est faite.