Cara mengaktifkan SSL connection di server MySQL 5.6


Pada kesempatan ini, saya akan membahas bagaimana mengaktifkan fitur  SSL agar komunikasi ke server MySQL lebih aman. Hal ini diperlukan apabila antara client dan server database MySQL berada di mesin yang terpisah, sehingga komunikasi di antaranya harus diamankan, salah satunya ya lewat enkripsi SSL yang memanfaatkan private dan public key sertifikat.

Disini saya menggunakan server mysql versi 5.6 di sistem operasi Ubuntu Server. Komunikasi Server MySQL juga dibuka agar bisa diakses dari mana saja.


Seperti yang sudah saya katakan sebelumnya untuk mengaktifkan fitur SSL dapat memanfaatkan sertifikat public dan private key SSL, jadi ya harus kita buat dulu sertifikatnya, berikut langkah-langkahnya:

saya masuk ke server MySQL, kemudian saya akan melihat dulu komunikasi yang saya gunakan lewat perintah \s , sehingga terlihat seperti ini hasilnya:


dari status di atas terlihat bahwa SSL tidak digunakan (not in use), artinya komunikasi antara klien ke server MySQL tidak terlindungi enkripsi. Apabila di cek variabel atau parameternya menggunakan perintah:

 SHOW VARIABLES LIKE '%ssl%';

maka akan terlihat seperti berikut:


untuk membangun komunikasi melalui SSL, saya harus buat dulu sertifikat SSL nya di server MySQL, dengan menjalankan perintah:

 openssl genrsa 2048 > ca-key.pem

kemudian saya buat privat key dari sertifikat yang tadi saya buat tersebut dengan perintah:

 openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem > ca-cert.pem

anda akan di beri opsi-opsi yang harus diisi, tapi kosongkan saja dan pencet ENTER hingga selesai, maka dari kedua langkah di atas anda akan memiliki file sertfikat ca-cert.pem dan ca-key.pem.

Langkah berikutnya adalah membuat private key untuk server dengan menjalankan perintah:

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

seperti di atas, semua opsi di kosongkan dan silakan pencet ENTER hingga selesai. dari perintah di atas anda akan mendapatkan tambahan sertifikat yang terdiri dari server-key.pem dan server-req.pem.

Kemudian langkah selanjutnya adalah mengeksport private key ke RSA private key (server-key.pem) dengan menjalankan perintah:

 openssl rsa -in server-key.pem -out server-key.pem

lalu langkah berikutnya adalah membuat sertifikat baru menggunakan CA sertifikat dengan menjalankan perintah:

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

dari situ akan terbuat satu file baru yaitu server-cert.pem, lalu untuk mengaktifkan fitur SSL MySQL, saya membuka file konfigurasi dengan perintah:

 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

kemudian saya tambahkan konfigurasi di bawah ini:

 ssl-ca=/etc/mysql/ssl/ca-cert.pem
 ssl-cert=/etc/mysql/ssl/server-cert.pem
 ssl-key=/etc/mysql/ssl/server-key.pem

saya letakkan juga ketiga file sertfikat (ca-cert.pem, server-cert.pem dan server-key.pem) sesuai lokasi folder pada konfigurasi di atas.

kemudian restart server mysql untuk mengaplikasikan perubahannya melalui perintah:

 sudo service mysql restart

setelah itu masuk ke dalam server MySQL lalu jalankan perintah berikut:

 SHOW VARIABLES LIKE '%ssl%';

maka hasilnya akan terlihat seperti berikut:


terlihat bukan bedanya, ya dengan begitu MySQL sudah mendukung komunikasi via SSL dari klien karena sudah saya aktifkan fitur SSLnya. Untuk tutorial berikutnya saya akan bahas bagaimana memanfaatkan SSL tersebut untuk berkomunikasi dengan server dari klien.









Comments