내 웹 서버가 SSL 연결을 통해 MySQL 데이터베이스 서버와 통신하기를 원합니다. 웹 서버는 CentOS5를 실행하고 데이터베이스 서버는 FreeBSD를 실행합니다. 인증서는 중간 CA DigiCert에서 제공합니다.
MySQL은 다음과 같이 ssl을 사용해야합니다 my.cnf
.
# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
ssl
ssl-capath = /opt/mysql/pki/CA
ssl-cert = /opt/mysql/pki/server-cert.pem
ssl-key = /opt/mysql/pki/server-key.pem
MySQL을 시작하면 데몬이 오류없이 시작됩니다. 이는 인증서 파일을 모두 읽을 수 있음을 나타냅니다.
그러나 웹 서버에서 데이터베이스 서버로 연결하려고하면 오류가 발생합니다.
[root@webserver ~]# mysql -h mysql.example.org -u user -p
ERROR 2026 (HY000): SSL connection error
그리고 openssl로 추가 디버깅을 시도하면 :
[root@webserver ~]# openssl s_client -connect mysql.example.org:3306 0>/dev/null
CONNECTED(00000003)
15706:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:588:
이것이 MySQL 데이터베이스 서버에 대한 SSL 연결을 테스트하는 올바른 방법입니까? SSL23_GET_SERVER_HELLO:unknown protocol
SSL 트래픽이 아닌 포트로 SSL을 사용하는 경우 일반적으로 표시 되는 메시지이기 때문에 메시지가 이상합니다.
이 동일한 openssl 명령은 LDAP 및 HTTP 서버에서 제대로 작동하는 것 같습니다.
$ openssl s_client -connect ldap.example.org:636 0>/dev/null
CONNECTED(00000003)
depth=2 /C=US/O=The Go Daddy Group, Inc./OU=Go Daddy Class 2 Certification Authority
...
$ openssl s_client -connect www.example.org:443 0>/dev/null
CONNECTED(00000003)
depth=0 /DC=org/DC=example/OU=Services/CN=www.example.org