시나리오: MySQL 서버 인증

MySQL 서버를 인증하려면 TLS 인증서를 사용할 것을 권장합니다. 신뢰할 수 있는 인증 기관(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 유틸리티는 중앙 관리 서버가 설치된 폴더에 있습니다. 기본 설치 경로는 <디스크>:\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"

맨 위로