Scenariusz: uwierzytelnianie serwera MySQL

Zalecamy użycie certyfikatu TLS do uwierzytelnienia serwera MySQL. Możesz użyć certyfikatu z zaufanego urzędu certyfikacji lub certyfikatu z podpisem własnym.

Serwer administracyjny obsługuje zarówno jednokierunkowe, jak i dwukierunkowe uwierzytelnianie SSL dla MySQL.

Włącz jednokierunkowe uwierzytelnianie SSL

Wykonaj poniższe kroki, aby skonfigurować jednokierunkowe uwierzytelnianie SSL dla MySQL:

  1. Wygeneruj certyfikat TLS z podpisem własnym dla serwera MySQL

    W programie PowerShell zmień katalog na folder, w którym chcesz przechowywać certyfikaty. Wykonaj następujące polecenia:

    $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 = @"

    -----POCZĄTEK CERTYFIKATU-----

    $CertCABase64

    -----KONIEC CERTYFIKATU-----

    "@

    $CertLeafPemKey = @"

    -----POCZĄTEK KLUCZA PRYWATNEGO-----

    $CertLeafKeyBase64

    -----KONIEC KLUCZA PRYWATNEGO-----

    "@

    $CertLeafPemCert = @"

    -----POCZĄTEK CERTYFIKATU-----

    $CertLeafBase64

    -----KONIEC CERTYFIKATU-----

    "@

    # Output to file

    $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

    Polecenia te tworzą certyfikaty dla bieżącego użytkownika i eksportują certyfikaty do formatu PEM. Do uwierzytelnienia serwera potrzebne są jedynie wyeksportowane pliki PEM. Aby usunąć utworzone certyfikaty z systemu Windows, wykonaj następujące polecenie w programie PowerShell:

    certmgr.msc

    Znajdź utworzone certyfikaty w folderze Osobiste → Certyfikaty i usuń je.

  2. Utwórz plik flagi serwera

    Uruchom wiersz poleceń systemu Windows, korzystając z uprawnień administratora, a następnie zmień bieżący katalog na inny za pomocą narzędzia klscflag. Narzędzie klscflag znajduje się w folderze, w którym zainstalowany jest serwer administracyjny. Domyślna ścieżka instalacji to <Disk>:\Program Files (x86)\Kaspersky Lab\Kaspersky Security Center.

    Użyj narzędzia klscflag, aby utworzyć flagę serwera KLSRV_MYSQL_OPT_SSL_CA i jako jej wartość określ ścieżkę do certyfikatu.

    klscflag -fset -pv klserver -n KLSRV_MYSQL_OPT_SSL_CA -v <path to ca-cert.pem> -t d

  3. Skonfiguruj bazę danych

    Określ certyfikaty w pliku my.cnf. Otwórz plik my.cnf w edytorze tekstu i dodaj następujące wiersze do sekcji [mysqld]:

    [mysqld]

    ssl-ca=".../mysqlcerts/ca-cert.pem"

    ssl-cert=".../mysqlcerts/server-cert.pem"

    ssl-key=".../mysqlcerts/server-key.pem"

Włącz dwukierunkowe uwierzytelnianie SSL

Wykonaj poniższe kroki, aby skonfigurować dwukierunkowe uwierzytelnianie SSL dla MySQL:

  1. Utwórz pliki flag serwera

    Uruchom wiersz poleceń systemu Windows, korzystając z uprawnień administratora, a następnie zmień bieżący katalog na inny za pomocą narzędzia klscflag. Narzędzie klscflag znajduje się w folderze, w którym zainstalowany jest serwer administracyjny. Domyślna ścieżka instalacji to <Disk>:\Program Files (x86)\Kaspersky Lab\Kaspersky Security Center.

    Użyj narzędzia klscflag, aby utworzyć flagi serwera i jako ich wartości określ ścieżkę do plików certyfikatów:

    klscflag -fset -pv klserver -n KLSRV_MYSQL_OPT_SSL_CA -v <path to ca-cert.pem> -t s

    klscflag -fset -pv klserver -n KLSRV_MYSQL_OPT_SSL_CERT -v <path to server-cert.pem> -t s

    klscflag -fset -pv klserver -n KLSRV_MYSQL_OPT_SSL_KEY -v <path to server-key.pem> -t s

  2. Określ hasło (opcjonalnie)

    Jeśli plik server-key.pem wymaga hasła, utwórz flagę KLSRV_MARIADB_OPT_TLS_PASPHRASE i podaj hasło jako jego wartość:

    klscflag -fset -pv klserver -n KLSRV_MARIADB_OPT_TLS_PASPHRASE -v <passphrase> -t s

  3. Skonfiguruj bazę danych

    Określ certyfikaty w pliku my.cnf. Otwórz plik my.cnf w edytorze tekstu i dodaj następujące wiersze do sekcji [mysqld]:

    [mysqld]

    ssl-ca="...\ca-cert.pem"

    ssl-cert="...\server-cert.pem"

    ssl-key="...\server-key.pem"

Przejdź do góry