Sudah lama tidak menulis di blog kesayangan ini karena kesibukan satu dan lain hal. Kali ini kita akan membahas cara mengaktifkan atau mengkonfigurasi koneksi SSL di MySQL Server for Windows.
Baik kita mulai ya:
Peralatan yang digunakan dalam artikel ini:
- MySQL server versi 5.1.50-community (dalam hal ini sudah terinstal di mesin windows anda, atau anda install terlebih dahulu)
- OpenSSL for Windows
Kesepakatan pengaturan folder (sesuaikan dengan folder di mesin anda):
- MySQL berada di folder E:\MySQL51
- E:\mysqlCerts = folder untuk menyimpan “Certificates”
- OpenSSL diinstall di folder E:\WinTools\OpenSSL
A. Persiapan
Biasanya, file instalasi server MySQL untuk Windows yang dapat Anda unduh dari situs web MySQL, telah dikompilasi dengan dukungan SSL. Ini berarti bahwa server mendukung fitur ini tetapi tidak diaktifkan secara default. Untuk memeriksanya bisa digunakan perintah di Command Prompt sbb:
E:\MySQL51\bin\mysql -uroot -p
Isi passwordnya bila ada, kemudian jalankan:
mysql> SHOW GLOBAL VARIABLES LIKE ‘%ssl’;
Ok, jadi SSL tersedia tetapi DINONAKTIF untuk saat ini (jika kolom ‘Value’ berisi ‘NO’, berarti SSL tidak tersedia dari binari yang anda download, anda perlu mencari file instaler yang support SSL). Tujuan kita adalah untuk mengkonfigurasi MySQL terlebih dahulu sehingga menunjukkan ‘YES’ dalam kolom Value itu.
B. Generate SSL Certificates
Untuk membuat sertifikat SSL, kita pergunakan OpenSSL yang bisa didownload disini. Dalam hal ini saya menggunakan OpenSSL versi 1.0.2p Light (sesuaikan dengan sistem operasi anda x64 atau x32). Langkah-langkahnya sebagai berikut:
- Buat folder untuk menyimpan file Certificates di E:\mysqlCerts
- Jalankan command prompt, kemudian pindah ke folder E:\mysqlCerts sebagai folder aktif.
- Masih dalam command prompt, jalankan perintah-perintah berikut:
( E:\mysqlCerts>E:\WinTools\OpenSSL\bin\openssl )
# Generate a CA key and certificate
openssl genrsa 2048 > ca-key.pem
openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem > ca-cert.pem
Isi saja sesuai kehendak hati, asal baris “common name” tidak ada yang sama:
Country Name: ID
State or Province: JABAR
Locality Name: Sukabumi
Organization Name: Mertua Indah
Organizational Unit: Samawa
Common Name: Mertua
Email Address: [email protected]
# Generate server key dan signed certificate
openssl req -sha1 -newkey rsa:2048 -days 3650 -nodes -keyout server-key.pem > server-req.pem
openssl x509 -sha1 -req -in server-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem
openssl rsa -in server-key.pem -out server-key.pem
Country Name: ID
State or Province: JABAR
Locality Name: Sukabumi
Organization Name: Suami Tercinta
Organizational Unit: Samawa
Common Name: Suami
Email Address: [email protected]
# Generate client key dan certificate
openssl req -sha1 -newkey rsa:2048 -days 3650 -nodes -keyout client-key.pem > client-req.pem
openssl x509 -sha1 -req -in client-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > client-cert.pem
openssl rsa -in client-key.pem -out client-key.pem
Country Name: ID
State or Province: JABAR
Locality Name: Sukabumi
Organization Name: Pacar Tercinta
Organizational Unit: Samawa
Common Name: Pacarku
Email Address: [email protected]
Verifikasi certificate yang sudah dibuat dengan perintah berikut:
openssl verify -CAfile ca-cert.pem server-cert.pem client-cert.pem
Bila sertifikat sudah OK semua, lanjutkan ke langkah berikutnya.