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 protocolEğ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