Сценарий: MySQL Server серверінің аутентификациясы

MySQL серверінің аутентификациясы үшін TLS сертификатын пайдалану ұсынылады. Сенімді сертификаттау орталығының (СА) сертификатын немесе өздігінен қол қойылған сертификатты қолдана аласыз.

Басқару сервер MySQL үшін бір жақты және екі жақты SSL аутентификациясына қолдау көрсетеді.

Бір жақты SSL аутентификациясын қосу

MySQL үшін бір жақты SSL аутентификациясын орнату мақсатында мына қадамдарды орындаңыз:

  1. MySQL сервері үшін өздігінен қол қойылған TLS сертификатын жасау.

    PowerShell бағдарламасындағы орынды сертификаттарды сақтағыңыз келетін қалтамен ауыстырыңыз. Келесі пәрмендерді орындаңыз:

    $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-----

    "@

    # 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

    Бұл пәрмендер ағымдағы пайдаланушы үшін куәліктер жасайды және сертификаттарды PEM пішіміне экспорттайды. Сервердің аутентификациясы үшін сізге тек экспортталған PEM файлдары қажет. Жасалған сертификаттарды Windows жүйесінен жою үшін PowerShell бағдарламасында келесі пәрменді іске қосыңыз:

    certmgr.msc

    Жасалған сертификаттарды Жеке → Сертификаттар қалтасынан тауып, оларды жойыңыз.

  2. Сервер жалаушасының файлын жасау

    Әкімші құқықтары бар Windows пәрмен жолын іске қосыңыз, содан кейін ағымдағы каталогті klscflag утилитасы бар каталогке өзгертіңіз. klscflag утилитасы Басқару серверінің орнату қалтасында орналасқан. Әдепкі бойынша орнату жолы: <Диск>:\Program Files (x86)\Kaspersky Lab\Kaspersky Security Center.

    Klscflag утилитасын пайдаланып, KLSRV_MYSQL_OPT_SSL_CA сервері жалаушасын жасаңыз және оның мәндері ретінде сертификатқа жолды көрсетіңіз:

    klscflag -fset -pv klserver -n KLSRV_MYSQL_OPT_SSL_CA -v <жолы ca-cert.pem> -t s

  3. Дерекқорды конфигурациялаңыз

    my.cnf файлында сертификаттарды көрсетіңіз. Мәтіндік редакторда my.cnf файлын ашыңыз және [mysqld] бөліміне келесі жолдарды қосыңыз:

    [mysqld]

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

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

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

Екі жақты SSL аутентификациясын қосу

MySQL үшін екі жақты SSL аутентификациясын орнату мақсатында мына қадамдарды орындаңыз:

  1. Сервер жалауша файлдарын жасау

    Әкімші құқықтары бар Windows пәрмен жолын іске қосыңыз, содан кейін ағымдағы каталогті klscflag утилитасы бар каталогке өзгертіңіз. klscflag утилитасы Басқару серверінің орнату қалтасында орналасқан. Әдепкі бойынша орнату жолы: <Диск>:\Program Files (x86)\Kaspersky Lab\Kaspersky Security Center.

    Klscflag утилитасын пайдаланып, сервер жалаушаларын жасаңыз және олардың мәндері ретінде сертификат файлдарына жолды көрсетіңіз:

    klscflag -fset -pv klserver -n KLSRV_MYSQL_OPT_SSL_CA -v <жолы ca-cert.pem> -t s

    klscflag -fset -pv klserver -n KLSRV_MYSQL_OPT_SSL_CERT -v <жолы server-cert.pem> -t s

    klscflag -fset -pv klserver -n KLSRV_MYSQL_OPT_SSL_KEY -v <жолы server-key.pem> -t s

  2. Құпия сөйлемді көрсетіңіз (міндетті емес)

    Егер server-key.pem кодты сөйлемді қажет етсе, KLSRV_MARIADB_OPT_TLS_PASPHRASE жалаушасын жасаңыз және кодты сөйлемді оның мәні ретінде көрсетіңіз:

    klscflag -fset -pv klserver -n KLSRV_MARIADB_OPT_TLS_PASPHRASE -v <кодты сөйлем> -t s

  3. Дерекқорды конфигурациялаңыз

    my.cnf файлында сертификаттарды көрсетіңіз. Мәтіндік редакторда my.cnf файлын ашыңыз және [mysqld] бөліміне келесі жолдарды қосыңыз:

    [mysqld]

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

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

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

Басына оралу