Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 클라이언트용 TLS 활성화


TLS는 SSL(Secure Sockets Layer)이라고도 합니다. 전송 계층 보안을 나타냅니다.

MySQL 클라이언트와 서버 간에 암호화되지 않은 연결이 있는 경우 네트워크에 액세스할 수 있는 사람은 모든 트래픽을 감시하고 클라이언트와 서버 간에 송수신되는 데이터를 검사할 수 있습니다. 사용자가 안전한 방법으로 네트워크를 통해 정보를 이동하려는 경우 암호화되지 않은 연결은 허용되지 않습니다.

모든 종류의 데이터를 읽을 수 없도록 하려면 암호화를 사용해야 합니다. 암호화 알고리즘에는 일반적으로 많은 종류의 알려진 공격에 저항하는 데 도움이 되는 보안 요소가 포함되어 있으며, 그 중 일부는 암호화된 메시지의 순서를 변경하거나 데이터를 두 번 재생하는 것을 포함합니다. MySQL은 TLS 프로토콜을 사용하는 클라이언트와 서버 사이에서 발생하는 암호화된 연결을 지원합니다. 그러나 MySQL은 암호화가 약하기 때문에 암호화된 연결에 SSL 프로토콜을 사용하지 않습니다.

TLS는 암호화 알고리즘을 사용하여 공용 네트워크를 통해 수신되는 데이터가 신뢰할 수 있는 데이터인지 확인합니다. 데이터 변경, 손실 또는 재생을 감지하는 여러 가지 방법이 있습니다. TLS는 X.509 표준의 도움으로 신원 확인과 함께 제공되는 알고리즘도 사용합니다.

TLS 활성화 단계

MySQL은 연결별로 암호화를 수행합니다. 지정된 사용자에 대한 암호화는 선택 사항이거나 필수 사항일 수 있습니다. 이를 통해 사용자는 애플리케이션의 요구 사항에 따라 암호화된 연결 또는 암호화되지 않은 연결을 선택할 수 있습니다.

MySQL 클라이언트에 대해 TLS를 활성화하는 방법을 알아보겠습니다.

  • 구성 파일의 ssl-cert 및 ssl-key 매개변수는 서버가 시작될 때 지정되어야 합니다.
  • 인증서 또는 키는 OpenSSL의 도움으로 서명 및 생성됩니다.
  • 이 키는 MySQL의 mysql_ssl_rsa_setup 도구를 사용하여 생성할 수도 있습니다.
    mysql_ssl_rsa_setup --datadir=./certs
  • 매개변수가 정확하면 보안 연결이 시작될 때 활성화되는 출력으로 전달됩니다.
  • 인증서, 키 및 CA가 다시 로드됩니다. ALTER INSTANCE RELOAD TLS 문이 서버 인스턴스에서 실행됩니다. 이렇게 하면 서버 인스턴스를 다시 로드할 필요가 없습니다.
  • 새로 로드된 인증서, 키 및 CA는 설정된 연결이 성공적으로 실행된 후 효과를 나타냅니다.
  • MySQL 클라이언트가 암호화된 연결을 사용하도록 구성되어 있습니다. 기본적으로 암호화된 연결을 설정하려고 시도합니다. 서버가 암호화된 연결을 지원하지 않으면 암호화되지 않은 연결이 자동으로 반환됩니다.
  • 클라이언트의 연결 동작은 --ssl-mode 매개변수를 사용하여 변경할 수 있습니다.
    --ssl-mode=REQUIRED- Tells that en encrypted connection is needed.

인증 활성화 필요:ssl-ca 매개변수가 지정되지 않은 경우 클라이언트 또는 서버는 기본적으로 인증을 수행하지 않습니다.

  • ssl-cert 및 ssl-key 매개변수는 서버에서 지정해야 합니다.
  • --ssl-ca 매개변수는 MySQL 클라이언트에 지정됩니다.
  • --ssl-mode는 MySQL 클라이언트에서 VERIFY_CA에 지정됩니다.
  • 서버에 구성된 인증서(ssl-cert)는 클라이언트 --ssl-ca 매개변수로 지정된 CA에서 서명합니다.
  • 그렇지 않으면 인증에 실패합니다.

서버에서 MySQL 클라이언트를 인증하려면:

  • ssl-cert, ssl-key 및 ssl-ca 매개변수는 서버로 지정됩니다.
  • --ssl-cert 및 --ssl-key 매개변수는 클라이언트에서 지정됩니다.
  • 서버 구성 인증서와 클라이언트 구성 인증서는 서버에서 지정한 ssl-ca로 서명됩니다.
  • 서버 간 인증은 선택 사항입니다. 클라이언트가 TLS 핸드셰이크 중에 ID 인증서를 표시하지 않으면 TLS 연결이 계속 설정됩니다.
  • 현재 연결이 암호화를 사용하는지 확인하십시오.