Setelah membuat sertifikat SSL yang ditandatangani sendiri, saya telah mengonfigurasi server MySQL jarak jauh saya untuk menggunakannya (dan SSL diaktifkan)
Saya ssh ke server jauh saya, dan coba sambungkan ke mysqld-nya sendiri menggunakan SSL (server MySQL adalah 5.5.25) ..
mysql -u <user> -p --ssl=1 --ssl-cert=client.cert --ssl-key=client.key --ssl-ca=ca.cert
Enter password:
ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0):func(0):reason(1)
Ok, saya ingat pernah membaca ada masalah dengan menghubungkan ke server yang sama melalui SSL. Jadi saya mengunduh kunci klien ke kotak lokal saya, dan menguji dari sana ...
mysql -h <server> -u <user> -p --ssl=1 --ssl-cert=client.cert --ssl-key=client.key --ssl-ca=ca.cert
Enter password:
ERROR 2026 (HY000): SSL connection error
Tidak jelas apa yang dimaksud dengan galat "Sambungan SSL" ini, tetapi jika saya hilangkan -ssl-ca
, maka saya dapat terhubung menggunakan SSL ..
mysql -h <server> -u <user> -p --ssl=1 --ssl-cert=client.cert --ssl-key=client.key
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 37
Server version: 5.5.25 MySQL Community Server (GPL)
Namun, saya percaya bahwa ini hanya mengenkripsi koneksi, dan tidak benar-benar memverifikasi validitas sertifikat (artinya saya akan berpotensi rentan terhadap serangan manusia-ke-tengah)
Sertifikat SSL valid (meskipun ditandatangani sendiri), dan tidak memiliki frasa sandi. Jadi pertanyaan saya adalah, apa yang saya lakukan salah? Bagaimana saya bisa terhubung melalui SSL, menggunakan sertifikat yang ditandatangani sendiri?
Versi MySQL Server adalah 5.5.25 dan server dan klien adalah CentOS 5.
Terima kasih atas sarannya
Sunting : Perhatikan bahwa dalam semua kasus, perintah dikeluarkan dari direktori yang sama di mana tombol ssl berada (karenanya tidak ada jalur absolut)
Sunting (sebagai tanggapan terhadap mgorven):
ca.cert
adalah sertifikat Otoritas Sertifikat, yang seharusnya memberi tahu mysql bahwa otoritas sertifikat saya dipercaya.
Konfigurasi dari my.cnf
adalah
[mysqld]
ssl-ca=/etc/ssl/mysql/ca.cert
ssl-cert=/etc/ssl/mysql/server.cert
ssl-key=/etc/ssl/mysql/server.key
Saya juga mencoba menambahkan ssl-cipher=DHE-RSA-AES256-SHA
tetapi sejak itu dihapus karena tidak membantu.
ca.cert
? Apakah itu sertifikat yang ditandatangani sendiri oleh server? Apakah Anda menggunakan sertifikat klien untuk otentikasi? Harap berikan konfigurasi terkait SSL di server.