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 유틸리티는 중앙 관리 서버가 설치된 폴더에 있습니다. 기본 설치 경로는 <디스크>:\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 유틸리티는 중앙 관리 서버가 설치된 폴더에 있습니다. 기본 설치 경로는 <디스크>:\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"