Saya ingin server web saya berbicara dengan server database MySQL melalui koneksi SSL. Server Web menjalankan CentOS5, Server Database menjalankan FreeBSD. Sertifikat diberikan oleh CA DigiCert perantara.
MySQL harus menggunakan ssl, sesuai dengan 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
Ketika saya memulai MySQL, daemon dimulai tanpa kesalahan. Ini menunjukkan bahwa semua file sertifikat dapat dibaca.
Tetapi ketika saya mencoba untuk terhubung dari server web ke server database, saya mendapatkan kesalahan:
[root@webserver ~]# mysql -h mysql.example.org -u user -p
ERROR 2026 (HY000): SSL connection error
Dan jika saya mencoba untuk debug lebih lanjut dengan 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:
Apakah ini cara yang valid untuk menguji koneksi SSL ke server database MySQL? The SSL23_GET_SERVER_HELLO:unknown protocol
pesan aneh karena ini biasanya apa yang Anda akan melihat jika Anda berbicara SSL pada port yang ditujukan untuk lalu lintas non-SSL.
Perintah openssl yang sama ini tampaknya berfungsi baik dengan server 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