情境:驗證 MySQL 伺服器

我們建議您使用 TLS 憑證對 MySQL 伺服器進行身分驗證。您可使用來自信任的憑證授權單位 (CA) 或自簽發憑證。

管理伺服器支援 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 公用程式位於安裝管理伺服器的資料夾中。預設安裝路徑:<Disk>:\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 <path to 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 公用程式位於安裝管理伺服器的資料夾中。預設安裝路徑:<Disk>:\Program Files (x86)\Kaspersky Lab\Kaspersky Security Center.

    使用 klscflag 公用程式建立伺服器標誌並將憑證檔案路徑指定為其值:

    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. 指定密碼短語(可選)

    如果 server-key.pem 需要複雜密碼,請建立 KLSRV_MARIADB_OPT_TLS_PASPHRASE 標誌並將複雜密碼指定為其值:

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

  3. 設定資料庫

    在 my.cnf 檔案中指定憑證。在文字編輯器中開啟 my.cnf 檔案並將以下行新增至 [mysqld] 部分中:

    [mysqld]

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

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

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

頁頂