데이터베이스 노드 및 라우터 구성
다음과 유사한 설정을 사용하여 보안 SSL 연결을 통한 연결을 위한 데이터베이스 노드 및 라우터를 구성합니다.
라우터
라우터 구성 파일에서 아래 설정이 있는지 확인합니다.
CLIENT_SSL_MODE=PREFERRED
CLIENT_SSL_CERT=*absolute path of the generated router certificate*
CLIENT_SSL_KEY=*absolute path of the generated router key*
SERVER_SSL_MODE=AS_CLIENT
SERVER_SSL_VERIFY=VERIFY_IDENTITY
SERVER_SSL_CA=*absolute path of the common ca.pem placed on this server*
구성된 후에는 모든 사용자에게 읽기 권한을 제공하고 그룹 및 다른 사용자의 쓰기 권한을 취소합니다.
데이터베이스 노드
각 MySQL 데이터베이스 노드에서 해당 섹션 아래에 다음이 설정되어 있는지 확인합니다.
SSL_CAPATH=*absolute path of the common ca.pem placed on this node*
SSL_CA=ca.pem
SSL_CERT=server-cert.pem
SSL_KEY=server-key.pem
GROUP_REPLICATION_SSL_MODE=REQUIRED
REQUIRE_SECURE_TRANSPORT=ON
데이터베이스 노드를 구성한 후 모든 사용자에게 읽기 권한을 제공하고 그룹 및 기타 사용자로부터 쓰기 권한을 취소합니다.
접속 테스트
구성이 수행되고 구성 파일에 적절한 권한이 제공되면 데이터베이스 노드 및 라우터를 다시 시작하여 설정을 테스트합니다.
데이터베이스 노드 연결 테스트
데이터베이스 노드가 종료되지 않는지 확인합니다. 구성 파일의 log-error 설정 아래의 로그에서 SSL 설정이 수락되지 않았음을 나타내는 오류나 경고가 있는지 확인합니다. 다음 명령줄을 사용하여 특정 노드에 연결해 보십시오(이 노드의 인증서에 지정된 공통 이름 사용).
mysql -u *username* -p *password* -h *db_common_name* -P *db_port* --ssl-mode=VERIFY_IDENTITY --ssl-ca=*path/of/ca.pem*
연결에서 오류가 발생하지 않는지 확인합니다.
마찬가지로 적절한 매개변수 값을 제공하여 다른 SSL 모드에 연결합니다. 주: VERIFY_IDENTITY의 경우 ssl-cert 및 ssl-key가 필수는 아닙니다. 그러나 데이터베이스 사용자에게 X509 인증이 필요한 경우 ssl-cert 및 ssl-key를 모두 client-cert 및 client-key와 함께 제공해야 합니다.
이 방법을 사용하여 모든 데이터베이스 노드를 테스트한 다음 라우터 연결을 테스트합니다.
라우터 연결 테스트
데이터베이스 노드가 작동되면 라우터를 다시 시작하고 라우터가 종료되지 않도록 모니터링합니다.
구성 파일의 log-error 설정 아래의 로그에서 SSL 설정이 수락되지 않았음을 나타내는 오류나 경고가 있는지 확인합니다. 오류나 경고가 없으면 다음 명령을 사용하여 라우터에서 데이터베이스에 연결해 보십시오. 라우터의 인증서에 지정된 공통 이름을 사용해야 합니다.
mysql -u *username* -p *password* -h *router_common_name* -P *router_port* --ssl-mode=VERIFY_IDENTITY --ssl-ca=*path/of/ca.pem*
연결이 오류 없이 통과되는지 확인합니다.
라우터에서 데이터베이스 노드로의 연결 확인
먼저 다음 명령을 사용하여 현재 활성 기본 노드를 확인합니다.
MySQL> SHOW VARIABLES like '%hosts%';
이제 데이터베이스에서 로그아웃하고 데이터베이스를 다른 노드로 전환합니다. 그런 다음 다음 다음 명령을 사용하여 라우터에서 데이터베이스에 다시 로그인합니다.
mysql -u *username* -p *password* -h *router_common_name* -P *router_port* --ssl-mode=VERIFY_IDENTITY --ssl-ca=*path/of/ca.pem*
동일한 명령을 사용하여 현재 활성 기본 노드를 다시 확인합니다.
MySQL> SHOW VARIABLES like '%hosts%';