MySQL サーバーの認証には TLS 証明書を使用することを推奨します。信頼できる証明機関(CA)の証明書または自己署名証明書を使用できます。
管理サーバーは、MySQL に対して一方向および双方向の SSL 認証の両方をサポートします。
一方向 SSL 認証の有効化
MySQL の一方向 SSL 認証を設定するには、次の手順に従います:
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
作成された証明書を「個人」→「証明書」フォルダーで探して削除します。
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 <
ca-cert.pem へのパス
> -t s
ファイル 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 認証を設定するには、次の手順に従います:
Windows コマンドプロンプトを管理者権限で実行し、現在のディレクトリを klscflag ユーティリティのあるディレクトリに変更します。klscflag ユーティリティは、管理サーバーがインストールされているフォルダーにあります。既定のインストールパス:<Disk>:\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
server-key.pem にパスフレーズが必要な場合は、KLSRV_MARIADB_OPT_TLS_PASPHRASE フラグを作成し、その値としてパスフレーズを指定します:
klscflag -fset -pv klserver -n KLSRV_MARIADB_OPT_TLS_PASPHRASE -v <
パスフレーズ
> -t s
ファイル my.cnf で証明書を指定します。テキストエディターでファイル my.cnf を開き、次の行を[mysqld]セクションに追加します:
[mysqld]
ssl-ca="...\ca-cert.pem"
ssl-cert="...\server-cert.pem"
ssl-key="...\server-key.pem"