Cara konfigurasi SSL untuk mengamankan komunikasi ke server database MySQL dari client


Jika di tutorial sebelumnya saya membahas bagaimana mengaktifkan fitur SSL, sekarang pada tutorial ini saya akan membahas bagaimana memanfaatkan fitur SSL untuk membangun komunikasi yang aman dari client ke server MySQL.

Pertama silakan masuk ke server MySQL yang sudah diaktifkan fitur SSL nya, melalui perintah:

 mysql -u root -p -h alamat_ip

setelah masuk saya jalankan perintah \s maka hasilnya seperti berikut:


dari hasil di atas tampak bahwa komunikasi belum memanfaatkan SSL, kemudian saya jalankan juga perintah :

 SHOW VARIABLES LIKE '%ssl%';

untuk melihat apakah fitur SSL sudah aktif atau belum, maka hasilnya sudah aktif karena terlihat seperti di bawah ini:


ternyata fitur SSL sudah aktif dan sertifikat berada di folder /etc/mysql/ssl/ , jika belum aktif anda bisa membaca tutorial saya sebelumnya bagaimana cara mengaktifkannya.

maka saya akan buat sertifikat baru untuk klien menggunakan sertifikat milik server, maka saya masuk ke folder /etc/mysql/ssl/ lalu menjalankan perintah:

 openssl req -sha1 -newkey rsa:2048 -days 730 -nodes -keyout client-key.pem > client-req.pem

silakan pencet ENTER saja hingga selesai dan jangan diisi apa-apa, setelah itu saya export private key ke RSA private key dengan perintah:

 openssl req -sha1 -newkey rsa:2048 -days 730 -nodes -keyout client-key.pem > client-req.pem

setelah itu saya bikin sertifikat menggunakan CA private key melalui perintah:

 openssl x509 -sha1 -req -in client-req.pem -days 730 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > client-cert.pem

kemudian saya salin ketiga file yang tadi dibuat, ke klien yang terdiri dari:
  • ca-cert.pem
  • client-key.pem
  • client-cert.pem

ke dalam folder klien yang terletak di /etc/mysql/ssl/ setelah itu saya masukkan ke dalam konfigurasi mysql client, karena saya menggunakan aplikasi mysql client di terminal pada Ubuntu Server, maka saya tambahkan ke dalam file:

/etc/mysql/my.cnf

konfigurasi berikut:

 [client]
 ssl-cert = /etc/mysql/ssl/client-cert.pem
 ssl-key  = /etc/mysql/ssl/client-key.pem

simpan kemudian saya mencoba melakukan komunikasi dengan server MySQL dari klien dengan perintah:

 mysql -u root -p -h alamat_ip

setelah masuk, saya jalankan perintah \s, maka berikut hasilnya:


yak, dari hasil di atas terlihat bahwa klien sudah menggunakan komunikasi yang terenkripsi SSL ke server MySQL. Selamat mencoba ya






Comments