• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 1. 일반적인 보안 문제
    2. MySQL 권한 시스템
    3. MySQL 사용자 계정 관리
    1. 사용자 이름과 암호
    2. 사용자 계정 추가
    3. 사용자 계정 삭제
    4. 계정 자원 제한 설정
    5. 계정 암호 지정
    6. 암호 만료 및 샌드 박스 모드
    7. 플러그 인증
    8. MySQL에서 사용 가능한 인증 플러그인
    9. 프록시 사용자
    10. 보안 연결을 위해 SSL 사용
    1. 기본적인 SSL 개념
    2. SSL을 사용하는 MySQL의 구성
    3. SSL 연결 사용
    4. 명령 옵션
    5. MySQL에서의 SSL 인증서 및 키 설정
    11. SSH를 사용하여 Windows에서 MySQL에 대한 원격 연결
    12. MySQL Enterprise Audit 로그 플러그인
    13. SQL 기반의 MySQL 계정 활동 감사
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

6.3.10.3 SSL 연결 사용

SSL 연결을 사용하려면 섹션 6.3.10.2 "SSL을 사용하는 MySQL 구성" 에 설명 된대로 SSL 지원을 사용하여 MySQL 배포를 구축합니다. 또한 적절한 인증서 및 키 파일을 지정하려면 적절한 SSL 관련 옵션을 사용해야합니다. SSL 옵션의 전체 목록은 섹션 6.3.10.4 "SSL 명령 옵션" 을 참조하십시오.

SSL을 사용하여 연결이 클라이언트에 허용되도록 MySQL 서버를 시작하려면 보안 연결을 설정할 때 서버에서 사용되는 인증서와 키 파일을 식별하는 옵션을 사용합니다.

  • --ssl-ca 는 인증 기관 (CA) 인증서를 식별합니다.

  • --ssl-cert 는 서버의 공개 키 인증서를 식별합니다. 이를 클라이언트로 전송하고 그에 포함 된 CA 인증서와 비교하여 인증 할 수 있습니다.

  • --ssl-key 는 서버의 비밀 키를 식별합니다.

예를 들어, 다음과 같이 서버를 시작합니다.

 shell> mysqld --ssl-ca= ca-cert.pem \
         --ssl-cert= server-cert.pem \
         
--ssl-key= server-key.pem 

각 옵션은 PEM 형식의 파일 이름이 지정됩니다. 필요한 SSL 인증서 및 키 파일을 생성하는 절차는 섹션 6.3.10.5 「MySQL에서의 SSL 인증서 및 키 설정 " 을 참조하십시오. MySQL 소스 배포판을 가지고 있다면, 배포 mysql-test/std_data 디렉토리에서 데모 인증서와 키 파일을 사용하여 설정을 테스트 할 수 있습니다.

클라이언트에서도 옵션이 사용되지만, --ssl-cert 및 --ssl-key 는 클라이언트의 공개 키와 비밀 키를 식별합니다. 인증 기관의 인증서를 지정하는 경우, 서버에서 사용되는 것과 같은 형식으로 지정해야합니다.

SSL 지원을 사용하여 MySQL 서버에 보안 연결을 설정하기 위해 클라이언트가 지정해야하는 옵션은 클라이언트에서 사용되는 MySQL 계정의 SSL 요구 사항에 따라 다릅니다. ( 섹션 13.7.1.4 "GRANT 구문" 에서 REQUIRE 절의 설명을 참조하십시오.)

특별한 SSL 요구 사항을 가지고 있지 않은 계정 또는 REQUIRE SSL 옵션을 포함 GRANT 문을 사용하여 만든 계정을 사용하여 연결한다고 가정합니다. 권장되는 SSL 옵션 세트로 적어도 --ssl-cert 및 --ssl-key 를 지정하고 서버를 시작하고 --ssl-ca 를 사용하여 클라이언트를 호출합니다. 다음과 같이 클라이언트는 안전하게 연결할 수 있습니다.

 shell> mysql --ssl-ca= ca-cert.pem

클라이언트 인증서를 지정하도록 요구하려면 REQUIRE X509 옵션을 사용하여 계정을 만듭니다. 그 후, 클라이언트는 적절한 클라​​이언트 키 및 인증서 파일을 지정해야합니다. 그렇지 않으면 서버는 연결을 거부합니다.

 shell> mysql --ssl-ca= ca-cert.pem \
       --ssl-cert= client-cert.pem \
       
--ssl-key= client-key.pem 

SSL 사용을 방지하고 다른 SSL 옵션을 대체하려면 --ssl=0 또는 동의어 ( --skip-ssl , --disable-ssl )를 사용하여 클라이언트 프로그램을 호출합니다.

 shell> mysql --ssl=0

클라이언트는 Ssl_cipher 상태 변수의 값을 확인하여 서버의 현재 연결에서 SSL이 사용되었는지 여부를 확인할 수 있습니다. SSL이 사용되는 경우는 값이 비어 있지 않은 것입니다. 그렇지 않으면 빈입니다. 예 :

mysql> SHOW SESSION STATUS LIKE 'Ssl_cipher';
+---------------+--------------------+
| Variable_name | Value              |
+---------------+--------------------+
| Ssl_cipher    | DHE-RSA-AES256-SHA |
+---------------+--------------------+

mysql 클라이언트의 경우 대신 STATUS 또는 \s 명령을 사용하여 SSL 행을 확인하실 수 있습니다.

 mysql> \s
 ...
 SSL : Cipher in use is DHE-RSA-AES256-SHA
 ...

또는

 mysql> \s
 ...
 SSL : Not in use
 ...

C API를 사용하면 응용 프로그램의 SSL을 사용할 수 있습니다.

  • 보안 연결을 설정하려면 mysql_real_connect() 를 호출하기 전에 mysql_ssl_set() C API 함수를 사용하여 적절한 인증서 옵션을 설정합니다. 섹션 23.8.7.68 "mysql_ssl_set ()" 를 참조하십시오.

  • 연결이 된 후에, SSL이 사용 중인지 여부를 판단하려면 mysql_get_ssl_cipher() 를 사용합니다. NULL 이외의 반환 값은 보안 연결임을 보여 암호화에 사용되는 SSL 암호화의 이름을 나타냅니다. NULL 반환 값은 SSL이 사용되지 않았 음을 나타냅니다. 섹션 23.8.7.33 "mysql_get_ssl_cipher ()" 를 참조하십시오.

복제는 C API가 사용되기 때문에 마스터 서버와 슬레이브 서버 간의 안전한 연결을 사용할 수 있습니다. 섹션 17.3.7 "SSL을 사용하여 복제 설정" 을 참조하십시오.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved