17.3.7 SSL을 사용하여 Replication 설정
복제 중에 필요한 바이너리 로그의 전송을 암호화하기 위해 SSL을 사용하려면 마스터와 슬레이브 모두 SSL 네트워크 연결을 지원해야합니다. 어느 호스트가 SSL 연결을 지원하지 않는 경우 (SSL 용으로 컴파일 또는 구성되지 않았기 때문에), SSL 연결 기반의 복제는 실현 될 수 없습니다.
SSL 연결을 사용하는 복제를 설정하는 것은 SSL을 사용하는 서버와 클라이언트를 설치하는 것과 비슷합니다. 마스터에서 사용할 수있는 적절한 보안 인증서 및 각 슬레이브에서 유사한 증명서 (같은 인증 기관에서)를 취득 (또는 작성)해야합니다.
서버와 클라이언트 SSL 연결을위한 설정시 대한 자세한 내용은 섹션 6.3.10.2 "SSL을 사용하는 MySQL의 구성" 을 참조하십시오.
마스터에서 SSL을 사용하려면 적절한 인증서를 만들거나 가져온 후 마스터 my.cnf
파일의 [mysqld]
섹션에서 마스터 구성에 다음 구성 옵션을 추가해야합니다 .
[mysqld] ssl-ca=cacert.pem
ssl-cert=server-cert.pem
ssl-key=server-key.pem
인증서 경로는 상대도 절대라도 괜찮습니다. 이를 위해서는 전체 경로를 항상 사용하는 것이 좋습니다.
옵션은 다음과 같습니다.
ssl-ca
는 인증 기관 (CA) 인증서를 식별합니다.ssl-cert
는 서버 공개 키를 식별합니다. 이를 클라이언트로 전송하고 그에 포함 된 CA 인증서와 비교하여 인증 할 수 있습니다.ssl-key
는 서버 비밀 키를 식별합니다.
슬레이브는 SSL 정보를 설정하는 두 가지 옵션을 사용할 수 있습니다. 슬레이브의 my.cnf
파일의 [client]
섹션에 슬레이브 인증서를 추가하거나 CHANGE MASTER TO
문을 사용하여 SSL 정보를 명시 적으로 지정할 수 있습니다.
옵션 파일을 사용하여 슬레이브 인증서를 추가하려면 슬레이브의
my.cnf
파일의[client]
섹션에 다음 줄을 추가합니다.[client] ssl-ca=
cacert.pem
ssl-cert=client-cert.pem
ssl-key=client-key.pem
슬레이브가 마스터에 연결하지 않도록
--skip-slave-start
옵션을 사용하여 슬레이브 서버를 다시 시작합니다. SSL 연결을 사용하는MASTER_SSL
옵션을 사용하여 마스터 구성을 지정하는CHANGE MASTER TO
를 사용합니다.mysql>
CHANGE MASTER TO
->MASTER_HOST='master_hostname',
->MASTER_USER='replicate',
->MASTER_PASSWORD='password',
->MASTER_SSL=1;
CHANGE MASTER TO
문을 사용하여 SSL 인증서 옵션 지정하려면 SSL 옵션을 추가합니다.mysql>
CHANGE MASTER TO
->MASTER_HOST='master_hostname',
->MASTER_USER='replicate',
->MASTER_PASSWORD='password',
->MASTER_SSL=1,
->MASTER_SSL_CA = 'ca_file_name',
->MASTER_SSL_CAPATH = 'ca_directory_name',
->MASTER_SSL_CERT = 'cert_file_name',
->MASTER_SSL_KEY = 'key_file_name';
마스터 정보가 업데이트 된 후 슬레이브 복제 프로세스를 시작합니다.
mysql> START SLAVE;
SHOW SLAVE STATUS
문을 사용하여 SSL 연결이 성공적으로 구축 된 것을 확인할 수 있습니다.
CHANGE MASTER TO
문에 대한 자세한 내용은 섹션 13.4.2.1 "CHANGE MASTER TO 구문" 을 참조하십시오.
복제 중에 SSL 연결의 사용을 적용하는 경우 REPLICATION SLAVE
권한의 사용자를 만들고 그 사용자에 REQUIRE SSL
옵션을 사용합니다. 예 :
mysql>CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
mysql>GRANT REPLICATION SLAVE ON *.*
->TO 'repl'@'%.mydomain.com' REQUIRE SSL;
계정이 이미 존재하는 경우이 문 그것에 REQUIRE SSL
을 추가 할 수 있습니다.
mysql>GRANT USAGE ON *.*
->TO 'repl'@'%.mydomain.com' REQUIRE SSL;