Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tutorial MySQL – Mengonfigurasi dan Mengelola SSL di Server MySQL Anda

Dalam posting blog ini, kami meninjau beberapa aspek penting dalam mengonfigurasi dan mengelola SSL di hosting MySQL. Ini akan mencakup konfigurasi default, menonaktifkan SSL, dan mengaktifkan dan menegakkan SSL pada server MySQL. Pengamatan kami didasarkan pada versi komunitas MySQL 5.7.21.

Konfigurasi SSL Default di MySQL

Secara default, server MySQL selalu menginstal dan mengaktifkan konfigurasi SSL. Namun, tidak diberlakukan bahwa klien terhubung menggunakan SSL. Klien dapat memilih untuk terhubung dengan atau tanpa SSL karena server mengizinkan kedua jenis koneksi tersebut. Mari kita lihat cara memverifikasi perilaku default server MySQL ini.

Ketika SSL diinstal dan diaktifkan di server MySQL secara default, biasanya kita akan melihat yang berikut:

  1. Keberadaan file *.pem di direktori data MySQL. Ini adalah berbagai sertifikat dan kunci klien dan server yang digunakan untuk SSL seperti yang dijelaskan di sini.
  2. Akan ada catatan di file log kesalahan mysqld selama server mulai, seperti:
    • [Catatan] Ditemukan ca.pem, server-cert.pem dan server-key.pem di direktori data. Mencoba mengaktifkan dukungan SSL menggunakan mereka.
  3. Nilai variabel 'have_ssl' adalah YA:

mysql> tampilkan variabel seperti 'have_ssl';

+—————+——-+

| Nama_variabel | Nilai |

+—————+——-+

| have_ssl      | YA |

+—————+——-+

Sehubungan dengan klien MySQL, secara default, ia selalu mencoba untuk menggunakan koneksi jaringan terenkripsi dengan server, dan jika gagal, ia akan kembali ke mode tidak terenkripsi.

Jadi, dengan menghubungkan ke server MySQL menggunakan perintah:

mysql -h -u -p

Kami dapat memeriksa apakah koneksi klien saat ini dienkripsi atau tidak menggunakan perintah status:

status mysql>

————–

mysql  Ver 14.14 Distrib 5.7.21, untuk Linux (x86_64) menggunakan  EditLine wrapper

ID koneksi:         75

Database saat ini:

Pengguna saat ini:          [email protected]

SSL:                 Cipher yang digunakan adalah DHE-RSA-AES256-SHA

Halaman saat ini:         stdout

Menggunakan outfile:         ”

Menggunakan pembatas:       ;

Versi server:       5.7.21-log Server Komunitas MySQL (GPL)

Versi protokol:      10

Koneksi:          127.0.0.1 melalui TCP/IP

…………………………..

Bidang SSL yang disorot di atas menunjukkan bahwa koneksi dienkripsi. Namun, kita dapat meminta klien MySQL untuk terhubung tanpa SSL dengan menggunakan perintah:

mysql -h -u  -p –ssl-mode=DINONAKTIFKAN

 status mysql>

————–

ID koneksi:         93

Database saat ini:

Pengguna saat ini:          [email protected]

SSL:                 Tidak digunakan

Halaman saat ini:         stdout

Menggunakan outfile:         ”

Menggunakan pembatas:       ;

Versi server:       5.7.21-log Server Komunitas MySQL (GPL)

Versi protokol:      10

Koneksi:          127.0.0.1 melalui TCP/IP

……………………………

Kami dapat melihat bahwa meskipun SSL diaktifkan di server, kami dapat terhubung tanpa SSL.

Tutorial MySQL - Cara Mengonfigurasi dan Mengelola SSL di #MySQL ServerKlik Untuk Tweet

Menonaktifkan SSL di MySQL

Jika kebutuhan Anda adalah untuk sepenuhnya mematikan SSL di server MySQL alih-alih opsi default 'diaktifkan, tetapi mode opsional', kita dapat melakukan hal berikut:

  1.  Hapus sertifikat *.pem dan file kunci di direktori data MySQL.
  2. Mulai MySQL dengan opsi SSL dimatikan. Ini dapat dilakukan dengan menambahkan entri baris:

ssl=0   di file my.cnf.

 Kita dapat mengamati bahwa:

  1. TIDAK akan ada catatan di log mysqld seperti :
    • [Note] Ditemukan ca.pem, server-cert.pem dan server-key.pem di direktori data. Mencoba mengaktifkan dukungan SSL menggunakan mereka.
  2.  Nilai variabel 'have_ssl' akan DINONAKTIFKAN:

mysql> tampilkan variabel seperti 'have_ssl';

+—————+——-+

| Nama_variabel | Nilai |

+—————+——-+

| have_ssl      | DINONAKTIFKAN |

+—————+——-+

Menerapkan SSL di MySQL

Kami melihat bahwa meskipun SSL diaktifkan secara default di server MySQL, itu tidak diterapkan dan kami masih dapat terhubung tanpa SSL.

Sekarang, dengan menyetel variabel sistem require_secure_transport, kami akan dapat menerapkan bahwa server hanya akan menerima koneksi SSL. Ini dapat diverifikasi dengan mencoba terhubung ke server MySQL dengan perintah:

mysql -h -u sgroot -p –ssl-mode=DISABLED

Dan, kita dapat melihat bahwa koneksi akan ditolak dengan pesan kesalahan berikut dari server:

ERROR 3159 (HY000):Koneksi menggunakan transportasi tidak aman dilarang saat –require_secure_transport=ON.

Pertimbangan SSL untuk Saluran Replikasi

Secara default, dalam pengaturan replikasi MySQL, slave terhubung ke master tanpa enkripsi.

Oleh karena itu, untuk menyambung ke master dengan cara yang aman untuk lalu lintas replikasi, budak harus menggunakan MASTER_SSL=1; sebagai bagian dari 'CHANGE MASTER TO' perintah yang menentukan parameter untuk menghubungkan ke master. Harap perhatikan bahwa opsi ini juga wajib jika master Anda dikonfigurasi untuk menerapkan koneksi SSL menggunakan require_secure_transport.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mengimpor dan mengekspor database melalui phpMyAdmin ('Akses ditolak buat database db_name' error)

  2. Fungsi Konversi MySQL

  3. Bagaimana cara memotong tabel yang dibatasi kunci asing?

  4. Impor Basis Data Ke MySQL Atau MariaDB

  5. 3 Cara Menemukan Baris yang Mengandung Huruf Kecil di MySQL