Web sunucumun SSL bağlantısı üzerinden MySQL veritabanı sunucusuyla konuşmasını istiyorum. Web sunucusu CentOS5'i, Veritabanı Sunucusu FreeBSD'yi çalıştırır. Sertifikalar bir ara CA DigiCert tarafından sağlanır.
MySQL, ssl kullanıyor olmalıdır 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'i başlattığımda, arka plan programı hatasız başlıyor. Bu, sertifika dosyalarının okunabilir olduğunu gösterir.
Ancak web sunucusundan veritabanı sunucusuna bağlanmaya çalıştığımda bir hata alıyorum:
[root@webserver ~]# mysql -h mysql.example.org -u user -p
ERROR 2026 (HY000): SSL connection error
Ve eğer openssl ile daha fazla hata ayıklamaya çalışırsanız:
[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:
Bu, MySQL veritabanı sunucusuna SSL bağlantısını test etmenin geçerli bir yolu mu? SSL23_GET_SERVER_HELLO:unknown protocol
Eğer SSL olmayan trafik için tasarlanmış bir bağlantı noktasında SSL konuşuyormuş bu genellikle göreceğiniz beri mesajı garip.
Aynı openssl komutu LDAP ve HTTP sunucuları ile iyi çalışıyor gibi görünüyor:
$ 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