web-dev-qa-db-fra.com

Erreur SSL MySQL: impossible d'obtenir la clé privée

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?

7
Velkan

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
10
Velkan

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.

1
BaseZen