Es wird empfohlen, für die Authentifizierung am MySQL-Servers ein TLS-Zertifikat zu verwenden. Sie können ein Zertifikat einer vertrauenswürdigen Zertifizierungsstelle (certificate authority - CA) oder ein selbstsigniertes Zertifikat verwenden.
Der Administrationsserver unterstützt für MySQL sowohl die unidirektionale als auch die bidirektionale SSL-Authentifizierung.
Aktivieren der unidirektionalen SSL-Authentifizierung
Gehen Sie folgendermaßen vor, um die unidirektionale SSL-Authentifizierung für MySQL zu konfigurieren:
Starten Sie die PowerShell und wechseln Sie in den Ordner, in dem Sie die Zertifikate speichern möchten. Führen Sie die folgenden Befehle aus:
$CertCA = New-SelfSignedCertificate `
-Subject "CN=CertCA" `
-CertStoreLocation "Cert:\CurrentUser\My" `
-HashAlgorithm "SHA256" `
-NotAfter (Get-Date).AddDays(365)
$CertCABase64 = [System.Convert]::ToBase64String($CertCA.RawData, [System.Base64FormattingOptions]::InsertLineBreaks)
$CertLeaf = New-SelfSignedCertificate `
-Subject "CN=CertLeaf" `
–Signer $CertCA `
-CertStoreLocation "Cert:\CurrentUser\My" `
-HashAlgorithm "SHA256" `
-KeyExportPolicy Exportable `
-NotAfter (Get-Date).AddDays(365)
$CertLeafBase64 = [System.Convert]::ToBase64String($CertLeaf.RawData, [System.Base64FormattingOptions]::InsertLineBreaks)
$CertLeafRSACng = [System.Security.Cryptography.X509Certificates.RSACertificateExtensions]::GetRSAPrivateKey($CertLeaf)
$CertLeafKeyBytes = $CertLeafRSACng.Key.Export([System.Security.Cryptography.CngKeyBlobFormat]::Pkcs8PrivateBlob)
$CertLeafKeyBase64 = [System.Convert]::ToBase64String($CertLeafKeyBytes, [System.Base64FormattingOptions]::InsertLineBreaks)
$CertCAPemCert = @"
-----BEGIN CERTIFICATE-----
$CertCABase64
-----END CERTIFICATE-----
"@
$CertLeafPemKey = @"
-----BEGIN PRIVATE KEY-----
$CertLeafKeyBase64
-----END PRIVATE KEY-----
"@
$CertLeafPemCert = @"
-----BEGIN CERTIFICATE-----
$CertLeafBase64
-----END CERTIFICATE-----
"@
# In Datei ausgeben
$CertCAPemCert | Out-File -FilePath ca-cert.pem -Encoding Ascii
$CertLeafPemKey | Out-File -FilePath server-key.pem -Encoding Ascii
$CertLeafPemCert | Out-File -FilePath server-cert.pem -Encoding Ascii
Diese Befehle erstellen Zertifikate für den aktuellen Benutzer und exportieren die Zertifikate in das PEM-Format. Zur Authentifizierung des Servers benötigen nur die exportierten PEM-Dateien. Um die erstellten Zertifikate in Windows zu löschen, führen Sie den folgenden Befehl in der PowerShell aus:
certmgr.msc
Suchen Sie die erstellten Zertifikate im Ordner Persönlich → Zertifikate und löschen Sie diese.
Führen Sie die Windows-Eingabeaufforderung als Administrator aus und wechseln Sie anschließend in das Verzeichnis mit dem Tool "klscflag". Das Tool "klscflag" befindet sich in dem Verzeichnis, in dem der Administrationsserver installiert ist. Der Standardinstallationspfad lautet "<Laufwerksbuchstabe>:\Programme (x86)\ Kaspersky Lab\ Kaspersky Security Center".
Verwenden Sie das Tool "klscflag", um das Server-Flag KLSRV_MYSQL_OPT_SSL_CA zu erstellen, und geben Sie den Pfad des Zertifikats als dessen Wert an.
klscflag -fset -pv klserver -n KLSRV_MYSQL_OPT_SSL_CA -v <
Pfad zur Datei
ca-cert.pem> -t s
Geben Sie die Zertifikate in der Datei "my.cnf" an. Öffnen Sie die Datei "my.cnf" in einem Texteditor und fügen Sie im Abschnitt "[mysqld]" die folgenden Zeilen hinzu:
[mysqld]
ssl-ca="...\mysqlcerts\ca-cert.pem"
ssl-cert="...\mysqlcerts\server-cert.pem"
ssl-key="...\mysqlcerts\server-key.pem"
Aktivieren der bidirektionalen SSL-Authentifizierung
Gehen Sie folgendermaßen vor, um die bidirektionale SSL-Authentifizierung für MySQL zu konfigurieren:
Führen Sie die Windows-Eingabeaufforderung als Administrator aus und wechseln Sie anschließend in das Verzeichnis mit dem Tool "klscflag". Das Tool "klscflag" befindet sich in dem Verzeichnis, in dem der Administrationsserver installiert ist. Der Standardinstallationspfad lautet "<Laufwerksbuchstabe>:\Programme (x86)\ Kaspersky Lab\ Kaspersky Security Center".
Verwenden Sie das Tool "klscflag", um die Server-Flags zu erstellen, und geben Sie die Pfade der Zertifikate als deren Wert an.
klscflag -fset -pv klserver -n KLSRV_MYSQL_OPT_SSL_CA -v <
Pfad zur Datei
ca-cert.pem> -t s
klscflag -fset -pv klserver -n KLSRV_MYSQL_OPT_SSL_CERT -v <
Pfad zur Datei
server-cert.pem> -t s
klscflag -fset -pv klserver -n KLSRV_MYSQL_OPT_SSL_KEY -v <
Pfad zur Datei
server-key.pem> -t s
Wenn server-key.pem eine Passphrase erfordert, erstellen Sie das Flag KLSRV_MARIADB_OPT_TLS_PASPHRASE und geben Sie die Passphrase als dessen Wert an:
klscflag -fset -pv klserver -n KLSRV_MARIADB_OPT_TLS_PASPHRASE -v <
Passphrase
> -t s
Geben Sie die Zertifikate in der Datei "my.cnf" an. Öffnen Sie die Datei "my.cnf" in einem Texteditor und fügen Sie im Abschnitt "[mysqld]" die folgenden Zeilen hinzu:
[mysqld]
ssl-ca="...\ca-cert.pem"
ssl-cert="...\server-cert.pem"
ssl-key="...\server-key.pem"