안녕하세요.
Centos 7
MariaDB 10.1.7 을 사용중입니다.
http://dev.mysql.com/doc/refman/5.5/en/creating-ssl-files-using-openssl.html
위 링크의 Example 1 부분을 참조해서
ca-cert.pem
server-cert.pem
server-key.pem
위 3개 파일을 만들고..
my.cnf 파일의 [mysqld] 단락안에
ssl-ca=ca-cert.pem
ssl-cert=server-cert.pem
ssl-key=server-key.pem
위와 같이 설정하고
mysql을 다시 시작해서
mysql 콘솔에 접속해서
아래와 같이 조회를 해보았더니..
show variables like '%ssl%';
MariaDB [(none)]> show variables like '%ssl%';
+---------------------+------------------------------------+
| Variable_name | Value |
+---------------------+------------------------------------+
| have_openssl | YES |
| have_ssl | DISABLED |
| ssl_ca | ca-cert.pem |
| ssl_capath | |
| ssl_cert | server-cert.pem |
| ssl_cipher | |
| ssl_crl | |
| ssl_crlpath | |
| ssl_key | server-key.pem |
| version_ssl_library | OpenSSL 1.0.1e-fips 11 Feb 2013 |
+---------------------+------------------------------------+
위와 같이 have_ssl 속성이 DISABLED가 나오는데 뭐가 문제일까요;;
P.S :
저랑 똑같은 환경에서 똑같은 질문이 있네요;;
http://stackoverflow.com/questions/38552804/having-problems-enabling-have-ssl-mariadb
https://mariadb.com/kb/en/mariadb/secure-connections-overview/
무언가 여기에 힌트가 있을거 같아서 보고는 있는데.. 잘모르겠네요;
또한 만드신 인증서가 정상적인지
openssl verify -CAfile ca-cert.pem server-cert.pem client-cert.pem 해서 verify해보시기 바랍니다.
위의 두가지가 정확하다면 정상적으로 동작하실 겁니다.
verify 결과는 전부 OK로 나오구요..
근데 신기한건..
yum으로 MariaDB를 처음 설치하자마자
SSL 관련 설정을 아예 안하고 하면..
have_ssl DISABLED 인건 이해하겠는데..
have_openssl 가 기본으로 YES 로 되있는점도 이해가 안되네요;;
아래 링크의
https://mariadb.com/kb/en/mariadb/ssltls-system-variables/
have_openssl 의 변수 설명에..
아래와 같이 되어있어서 버전이 바뀌면서 뭔가 변경이 된게 아닌가 하고 추측만 하고 있습니다..;;
Description: Before MariaDB 10.0.1, have_openssl was an alias for have_ssl. Since MariaDB 10.0.1, comparing have_openssl with have_ssl will indicate whether YaSSL or openssl was used. If YaSSL, have_ssl will be ON, but have_openssl will be OFF.
위의 설명은 have_ssl은 YaSSL 또는 openssl을 지원하는지(정확이는 위의 라이브러리와 빌드가 되었는지) 여부에 대한 것이고 만약에 YaSSL을 지원하는 경우에는 have_openssl이 OFF된다는 이야기 입니다.
보통의 경우 대부분 openssl 을 지원하도록 설치가 되었을테니 아래처럼 나오는게 맞을 겁니다.
MariaDB [(none)]> show variables like '%ssl%';
+---------------+----------------------------+
| Variable_name | Value |
+---------------+----------------------------+
| have_openssl | YES |
| have_ssl | YES |
| ssl_ca | /etc/mysql/ca.pem |
| ssl_capath | |
| ssl_cert | /etc/mysql/server-cert.pem |
| ssl_cipher | |
| ssl_crl | |
| ssl_crlpath | |
| ssl_key | /etc/mysql/server-key.pem |
+---------------+----------------------------+
9 rows in set (0.00 sec)
그럼 전 도대체.. 왜.. 뭔짓을 해봐도..
have_ssl | DISABLED 일까요..ㅠ.ㅠ
원인은.. ca.pem 파일 이었습니다..;;
복사 붙여 넣기 신공으로..
http://dev.mysql.com/doc/refman/5.5/en/creating-ssl-files-using-openssl.html
https://www.percona.com/blog/2013/06/22/setting-up-mysql-ssl-and-secure-connections/
위 링크들의 설명에 있는 명령어를 고대로 붙여 넣어서 실행을 했는데..
1번째 링크에는.. ca.pem 파일명으로 되어있고..
2번째 링크의 파일명은.. ca-cert.pem 되어있었네요;;
제대로 확인을 안한 제 잘못입니다..ㅠ.ㅠ
김경민님 끝까지 답변 주셔서 정말 감사합니다!
그리고 너무 죄송합니다~!! ㅠ.ㅠ
해결되었으면 잘 된것이죠..ㅎㅎ