>데이터 베이스 >MySQL 튜토리얼 >MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까?

MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까?

James Robert Taylor
James Robert Taylor원래의
2025-03-18 12:01:35432검색

MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까?

MySQL 연결에 대한 SSL/TLS 암호화를 구성하려면 다음을 수행하십시오.

  1. SSL/TLS 인증서 준비 : SSL/TLS 인증서를 준비해야합니다. 여기에는 서버 인증서 ( server-cert.pem ), 서버 키 ( server-key.pem ), 클라이언트 인증서 ( client-cert.pem ) 및 클라이언트 키 ( client-key.pem )가 포함됩니다. 이 파일은 MySQL 서버의 보안 디렉토리에 배치해야합니다.
  2. MySQL 서버 구성 : MySQL 구성 파일 편집 (운영 체제에 따라 my.cnf 또는 my.ini ). [mysqld] 섹션에서 다음 줄을 추가하거나 수정하십시오.

     <code>[mysqld] ssl-ca=/path/to/ca-cert.pem ssl-cert=/path/to/server-cert.pem ssl-key=/path/to/server-key.pem</code>

    인증서가 저장된 실제 경로로 /path/to/ 교체하십시오.

  3. MySQL 서버를 다시 시작하십시오 : 구성을 업데이트 한 후 MySQL 서버를 다시 시작하여 변경 사항을 적용하십시오.
  4. 서버 SSL 구성 확인 : MySQL에 연결하고 다음 명령을 실행하여 서버가 SSL을 사용하고 있는지 확인하십시오.

     <code>SHOW VARIABLES LIKE 'have_ssl';</code>

    출력은 YES 보여 주어야합니다.

  5. MySQL 클라이언트 구성 : 클라이언트가 연결에 SSL을 사용하도록하려면 클라이언트 구성 파일 또는 런타임에 SSL 옵션을 지정할 수 있습니다. 예를 들어 MySQL 클라이언트 구성 파일 ( my.cnf 또는 my.ini )의 [client] 섹션에 다음 줄을 추가 할 수 있습니다.

     <code>[client] ssl-ca=/path/to/ca-cert.pem ssl-cert=/path/to/client-cert.pem ssl-key=/path/to/client-key.pem</code>
  6. SSL 연결 테스트 : 클라이언트를 사용하여 MySQL 서버에 연결하고 클라이언트 구성 파일에 아직 구성되지 않은 경우 SSL 옵션을 지정합니다. 명령 사용 :

     <code>mysql -h hostname -u username -p --ssl-ca=/path/to/ca-cert.pem --ssl-cert=/path/to/client-cert.pem --ssl-key=/path/to/client-key.pem</code>

    연결되면 실행하여 SSL 상태를 확인할 수 있습니다.

     <code>STATUS;</code>

    출력에는 SSL: Cipher in use .

MySQL의 SSL 인증서를 생성하고 설치하는 단계는 무엇입니까?

MySQL의 SSL 인증서를 생성하고 설치하려면 다음 단계를 수행하십시오.

  1. 인증 기관 (CA) 인증서 생성 : OpenSSL을 사용하여 CA 인증서 및 키를 만듭니다. 다음 명령을 실행하십시오.

     <code>openssl genrsa 2048 > ca-key.pem openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca-cert.pem</code>

    국가 이름 및 조직 이름과 같은 CA에 대한 세부 정보를 입력하라는 메시지가 표시됩니다.

  2. 서버 인증서 및 키 생성 : 서버 인증서 요청을 작성하고 CA에 서명하십시오.

     <code>openssl req -newkey rsa:2048 -days 3600 -nodes -keyout server-key.pem -out server-req.pem openssl rsa -in server-key.pem -out server-key.pem openssl x509 -req -in server-req.pem -days 3600 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem</code>

    서버 요청을 생성 할 때 Common Name MySQL 서버의 호스트 이름과 일치하는지 확인하십시오.

  3. 클라이언트 인증서 및 키 생성 : 마찬가지로, 마찬가지로, 클라이언트 인증서 요청을 작성하고 CA에 서명하십시오.

     <code>openssl req -newkey rsa:2048 -days 3600 -nodes -keyout client-key.pem -out client-req.pem openssl rsa -in client-key.pem -out client-key.pem openssl x509 -req -in client-req.pem -days 3600 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 02 -out client-cert.pem</code>
  4. 인증서 설치 : 생성 된 인증서와 키를 MySQL 서버에 보안 디렉토리에 배치하십시오. 예를 들어, /etc/mysql/ssl/ 사용할 수 있습니다.
  5. MySQL을 인증서를 사용하도록 구성하십시오 . 이전 섹션에서 설명한대로 인증서 파일을 가리 키도록 MySQL 구성 파일 ( my.cnf 또는 my.ini )을 편집하십시오.
  6. 인증서 파일 보안 : MySQL 서버 프로세스에서만 디렉토리와 파일에 액세스 할 수 있고 허용되지 않은 액세스를 방지하기 위해 권한이 올바르게 설정되어 있는지 확인하십시오.

MySQL SSL/TLS 암호화에 자체 서명 된 인증서를 사용할 수 있으며 보안 영향은 무엇입니까?

예, MySQL SSL/TLS 암호화에 자체 서명 된 인증서를 사용할 수 있습니다. 그러나 고려해야 할 몇 가지 보안 영향이 있습니다.

  • 신뢰 문제 : 자체 서명 인증서는 신뢰할 수있는 인증서 (CA)에 의해 발행되지 않으므로 고객은 명시 적으로 신뢰해야합니다. 클라이언트가 연결을 거부 할 수 있으므로 클라이언트가 올바르게 구성되지 않으면 중요한 문제가 될 수 있습니다.
  • MITM (Man-in-the-Middle) 공격 : 신뢰할 수있는 CA가 없으면 공격자가 연결을 가로 채고 가짜 인증서를 제시하여 MITM 공격으로 이어집니다. 이러한 경우 클라이언트는 진정한 서버와 공격자를 구별하지 못할 수 있습니다.
  • 유효성 검사 복잡성 : 자체 서명 인증서를 사용하려면 더 많은 수동 구성 및 유효성 검사가 필요합니다. 예를 들어 클라이언트 구성에 CA 인증서에 대한 올바른 경로가 포함되어 있는지 확인해야합니다.
  • 제한된 범위 : 자체 서명 인증서는 일반적으로 제어 된 환경 내에서 내부 사용에 적합합니다. 고객이 귀하의 통제를받지 않는 공개 응용 프로그램에 적합하지 않습니다.
  • 보안 모범 사례 : 자체 서명 인증서는 암호화를 제공 할 수 있지만 신뢰할 수있는 CA에서 발행 한 인증서와 동일한 수준의 인증을 제공하지 않습니다. 보안 요구 사항이 높은 생산 환경의 경우 신뢰할 수있는 CA의 인증서를 사용하는 것이 좋습니다.

MySQL 연결에 대해 SSL/TLS 암호화가 올바르게 작동하는지 어떻게 확인합니까?

SSL/TLS 암호화가 MySQL 연결에 올바르게 작동하는지 확인하려면 다음을 수행하십시오.

  1. MySQL 서버 구성 확인 : MySQL 서버에 연결하여 실행하십시오.

     <code>SHOW VARIABLES LIKE 'have_ssl';</code>

    출력은 SSL이 활성화되어 있음 YES 나타냅니다.

  2. SSL 연결 상태 확인 : MySQL 서버에 연결되면 실행하십시오.

     <code>STATUS;</code>

    출력에는 사용중인 암호를 보여주는 SSL 필드가 포함되어야합니다. 예를 들어 SSL: Cipher in use is TLS_AES_256_GCM_SHA384 .

  3. SHOW STATUS COMMANT : 다음 명령을 실행하여 SSL 연결에 대한 자세한 정보를 얻으십시오.

     <code>SHOW STATUS LIKE 'Ssl_cipher';</code>

    이것은 현재 연결에 사용되는 암호를 보여 주어야합니다.

  4. SSL 옵션으로 클라이언트 연결 확인 : SSL 옵션이 지정된 클라이언트를 사용하여 MySQL 서버에 연결하십시오.

     <code>mysql -h hostname -u username -p --ssl-ca=/path/to/ca-cert.pem --ssl-cert=/path/to/client-cert.pem --ssl-key=/path/to/client-key.pem</code>

    연결이 성공하고 STATUS 명령을 사용하여 SSL 상태를 확인할 수 있습니다.

  5. SSL 연결 메트릭 모니터링 : 실행을 통해 SSL 연결 메트릭을 모니터링 할 수 있습니다.

     <code>SHOW GLOBAL STATUS LIKE 'Ssl%';</code>

    이 명령은 Ssl_accepts , Ssl_accept_renegotiatesSsl_client_connects 와 같은 다양한 SSL 관련 상태 변수를 제공하므로 서버의 전체 SSL 사용량을 평가할 수 있습니다.

이 단계를 수행하면 SSL/TLS 암호화가 MySQL 연결에 적절히 구성되고 작동되도록 할 수 있습니다.

위 내용은 MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.