클라우드패널(Cloudpanel) phpMyAdmin 외부 DB TLS/SSL 연결 (Azure 기준)
このコンテンツはまだ日本語訳がありません。
클라우드패널(Cloudpanel)에서 외부 DB를 사용할 때 외부 DB에서 Root CA가 설정된 경우 TLS/SSL 연결을 해야 하죠. 기본적으로 Web UI에서 외부 DB 서버를 연결할 때 인증서를 입력하기는 하지만 각 사이트별 phpMyAdmin 연결 또한 TLS/SSL 연결을 하도록 수정해야 합니다.
1. 클라우드패널(Cloudpanel) phpMyAdmin 기본 설정 확인
우선 phpMyAdmin의 기본 설정을 같이 확인하겠습니다.
경로는 /home/clp/htdocs/app/files/public/phpmyadmin/ 입니다.
/* (상략) */
/** * Servers configuration */$i = 0;
/** * First server */$i++;
/*$cfg['Servers'][$i]['auth_type'] = 'cookie';$cfg['Servers'][$i]['host'] = 'localhost'; */$cfg['Servers'][$i]['auth_type'] = 'signon';$cfg['Servers'][$i]['SignonSession'] = 'SignonSession';$cfg['Servers'][$i]['SignonURL'] = $signonUrl;$cfg['Servers'][$i]['LogoutURL'] = $logoutUrl;
/* (하략) */클라우드패널(Cloudpanel)에서는 phpMyAdmin 로그인으로 Signon방식을 사용하고 있습니다. $i = 0;여기에서 초기화 하고 $i++; 여기에서 서버들에 대해서 반복하고 있습니다. 따라서 새로 반복되는 부분에 대해서만 CA 인증서를 추가하여 사이트별 phpMyAdmin의 연결을 할 수 있도록 설정하겠습니다.
2. Root CA 인증서를 다운로드 합니다.
wget --no-check-certificate https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem -P /home/clp/htdocs/app/files/public/phpmyadmin외부 DB서버의 Root CA 인증서를 /home/clp/htdocs/app/files/public/phpmyadmin 경로에 다운로드합니다.
3. Root CA 인증서의 권한을 clp:clp로 변경
chown clp:clp /home/clp/htdocs/app/files/public/phpmyadmin/DigiCertGlobalRootCA.crt.pem클라우드패널(Cloudpanel)의 기본 유저인 clp의 소유로 인증서 파일의 소유자를 변경합니다.
4. phpMyAdmin의 설정 config.inc.php파일 수정하기
수정한 내용은 클라우드패널(Cloudpanel) 판올림이 되면서 복구될 가능성이 높습니다. 또한, 나중에 변경을 대비해 주석을 달아줍니다.
sed -i '/$i++;/a\/* 외부 DB SSL 연결을 위하여 추가한 줄 시작 */\n$cfg['\''Servers'\''][$i]['\''ssl'\''] = true;\n$cfg['\''Servers'\''][$i]['\''ssl_ca'\''] = '\''DigiCertGlobalRootCA.crt.pem'\'';\n/* 외부 DB SSL 연결을 위하여 추가한 줄 끝 */' /home/clp/htdocs/app/files/public/phpmyadmin/config.inc.php위의 명령어를 터미널에 입력하면 $i++;를 기준으로 바로 아래에 아래와 같이 4줄을 추가합니다.
/* 외부 DB SSL 연결을 위하여 추가한 줄 시작 */$cfg['Servers'][$i]['ssl'] = true;$cfg['Servers'][$i]['ssl_ca'] = 'DigiCertGlobalRootCA.crt.pem';/* 외부 DB SSL 연결을 위하여 추가한 줄 끝 */5. 클라우드패널(Cloudpanel) phpMyAdmin 수정 결과 확인
cat /home/clp/htdocs/app/files/public/phpmyadmin/config.inc.php위의 명령어를 입력하시면 아래와 같이 추가된 것을 확인할 수 있습니다.
/* (상략) */
/** * Servers configuration */$i = 0;
/** * First server */$i++;/* 외부 DB SSL 연결을 위하여 추가한 줄 시작 */$cfg[Servers][$i][ssl] = true;$cfg[Servers][$i][ssl_ca] = DigiCertGlobalRootCA.crt.pem;/* 외부 DB SSL 연결을 위하여 추가한 줄 끝 */
/*$cfg['Servers'][$i]['auth_type'] = 'cookie';$cfg['Servers'][$i]['host'] = 'localhost'; */$cfg['Servers'][$i]['auth_type'] = 'signon';$cfg['Servers'][$i]['SignonSession'] = 'SignonSession';$cfg['Servers'][$i]['SignonURL'] = $signonUrl;$cfg['Servers'][$i]['LogoutURL'] = $logoutUrl;
/* (하략) */이제 각각의 사이트의 phpMyAdmin에 접속하실 수 있을 것이며, 외부 DB 서버와 정상적으로 통신이 가능합니다.
수고 많으셨습니다. 감사합니다.
- 암호화된 연결을 사용하여 Azure Database for MySQL - 유연한 서버에 연결
Askfront.com (에스크프론트)
초보자도 편하게 질문할 수 있는 자유로운 포럼을 준비했어요! 💬에스크프론트에서는 NavyStack 가이드뿐만 아니라, 궁금한 모든 질문을 환영합니다. 😊검색해도 원하는 답을 찾지 못해 답답했던 경험 있으시죠?🔍 그럴 땐 부담 없이 질문해 주세요!함께 이야기하며 답을 찾아갈 수 있을 거예요. 🤝제가 직접 답변드릴 수 있다면 언제든 도와드릴게요. 감사합니다! 🙏