it-swarm.com.de

MySQL SSL-Fehler: Privater Schlüssel kann nicht abgerufen werden

Beim Versuch, die Verschlüsselung zu aktivieren, wird ein Fehler angezeigt:

[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

Der Schlüssel wird folgendermaßen generiert:

openssl req -newkey rsa:4096 -nodes -keyout nginx.key -subj "/C=US/ST=California/L=Sacramento/O=MyOrg/OU=MyDev/CN=MyApp"

Das openssl prüft es gut.

Ich habe versucht, Berechtigungen, Eigentümer, Dateinamen zu ändern, in verschiedene Verzeichnisse zu wechseln, SELinux zu deaktivieren (es ist bereits deaktiviert), AppArmor-Protokolle anzusehen (es blockiert es nicht) und 'BEGIN/END PRIVATE KEY' in 'BEGIN' zu ändern/END RSA PRIVATE KEY '.

Was stimmt damit nicht?

7
Velkan

Ok, anscheinend reicht es nicht aus, nur 'BEGIN PRIVATE KEY' in 'BEGIN RSA PRIVATE KEY' zu ändern.

Es muss ordnungsgemäß von PKCS # 8 in PKCS # 1 Referenz konvertiert werden

openssl rsa -in /etc/mysql/ssl/nginx.key -out ~/nginx.key.rsa
10
Velkan

Als eine Konsolidierung meiner falschen Hinweise, die anderen geholfen haben:

  • Bits im POSIX-Modus und Dateibesitzer: Der MySQL-Benutzer muss über Benutzer- oder Gruppenrechte Lesezugriff auf alle SSL-Dateien haben. Dies kann bedeuten, dass chown mysql *.pem Oder ssl-private zu den Gruppen von mysql hinzugefügt wird. ( https://serverfault.com/questions/417390/cannot-setup-mysql-ssl-unable-to-read-certificate )

  • AppArmor kann den Dateizugriff sperren. Sie benötigen so etwas wie /etc/mysql/** In /etc/apparmor.d/usr.sbin/mysqld. Aktivieren Sie /var/log/kern.log Und berücksichtigen Sie aa-complain /usr/sbin/mysqld, Um Fehler statt Ablehnungen zu erhalten. ( https://forums.mysql.com/read.php?26,393495,393636#msg-393636) )

  • Falsch formatierter Dateiinhalt. Die SSL-Bibliothek kann sich nur sehr schlecht genau beschweren. Stellen Sie sicher, dass der vollständige Schlüsselsatz beispielsweise auf einer Website funktioniert.

  • Die Datei fehlt vollständig. Auch in der Fehlermeldung wird keine Unterscheidung getroffen.

1
BaseZen