GNU/Linux >> Belajar Linux >  >> Linux

Aktifkan SSL dan Koneksi Jarak Jauh untuk MySQL

Catatan :Artikel ini mengasumsikan bahwa Anda telah menginstal dan mengkonfigurasi MySQL®di server Anda.

Aktifkan SSL untuk MySQL

Sebelum menginstal sertifikat SSL Anda di database MySQL Anda, buat cadangan dan hapus file sertifikat default. Anda dapat memilih nama direktori Anda sendiri untuk langkah ini. Contoh ini menggunakan mysql-backup-certs direktori. Untuk melakukan langkah-langkah berikut, alihkan ke pengguna root.

  1. Buat direktori cadangan baru:

    mkdir -p ~/mysql-backup-certs/
    
  2. Buka /var/lib/mysql direktori dan pindahkan setiap sertifikat default ke direktori cadangan yang baru Anda buat:

    cd /var/lib/mysql
    mv ca.pem ca-key.pem ~/mysql-backup-certs/
    mv server-key.pem server-cert.pem ~/mysql-backup-certs/
    mv client-key.pem client-cert.pem ~/mysql-backup-certs/
    mv private_key.pem public_key.pem ~/mysql-backup-certs/
    
  3. Mulai ulang MySQL dengan menjalankan salah satu perintah berikut:

    service mysqld restart
    

    atau

    systemctl restart mysqld
    
  4. Gunakan salah satu dari perintah berikut untuk memeriksa mysqld status:

    service mysqld status
    

    atau

    systemctl status mysqld
    
  5. Periksa status SSL dari dalam shell MySQL. Untuk melakukan ini, masuk ke MySQL sebagai pengguna root:

    mysql -u root -p
    (Enter MySQL root password)
    
  6. Jalankan kueri berikut untuk memeriksa status SSL di MySQL:

    SHOW GLOBAL VARIABLES LIKE '%ssl%';
    STATUS;
    

    Catatan :Anda tidak perlu menggunakan huruf kapital. Contoh menggunakannya untuk membedakan sintaks perintah dari apa yang Anda kueri.

    Pada perintah sebelumnya, Anda ingin melihat status SSL sebagaidinonaktifkan , dan pengguna root terhubung tanpa SSL.

  7. Untuk mengaktifkan koneksi SSL dengan sertifikat kami sendiri dengan mengeditmy.cnf file, jalankan salah satu perintah berikut:

    vim /etc/my.cnf
    

    atau

    nano /etc/my.cnf
    
  8. Temukan [mysqld] dan tambahkan pengaturan konfigurasi berikut:

    # You will use your own SSL certificates directory for these. The following are examples only.
    ssl-ca=/etc/pki/tls/certs/ca.pem
    ssl-cert=/etc/pki/tls/certs/server-cert.pem
    ssl-key=/etc/pki/tls/private/server-key.pem
    
  9. Simpan dan keluar dari file. Kemudian, restart MySQL dengan menjalankan salah satu perintah berikut:

    service mysqld restart
    

    atau

    systemctl restart mysqld
    
  10. Setelah MySQL dicadangkan, masuk kembali ke shell MySQL:

    mysql -u root -p
    (Enter MySQL root password)
    
  11. Jalankan lagi kueri SSL:

    SHOW VARIABLES LIKE '%ssl%';
    STATUS;
    
  12. Jika nilai bagian SSL menunjukkan ya , SSL diaktifkan untuk MySQL. Namun, Anda masih melihat bahwa pengguna root tidak terhubung dengan menggunakan SSL. Ini normal. Jika Anda ingin mengubah ini, Anda dapat memaksa semua koneksi pengguna localhost untuk menggunakan SSL. Anda perlu mengedit my.cnf file lagi dengan menjalankan salah satu perintah berikut:

    vim /etc/my.cnf
    

    atau

    nano /etc/my.cnf
    
  13. Masukkan konfigurasi berikut di akhir:

    [client]
    ssl-ca=/etc/pki/tls/certs/ca.pem
    ssl-cert=/etc/pki/tls/certs/client-cert.pem
    ssl-key=/etc/pki/tls/private/client-key.pem
    
  14. Mulai ulang MySQL. Setelah MySQL dicadangkan, masuk ke shell MySQL lagi:

    mysql -u root -p
    (Enter MySQL root password)
    
  15. Jalankan lagi kueri berikut:

    SHOW VARIABLES LIKE '%ssl%';
    STATUS;
    

Jika Anda hanya ingin mengaktifkan koneksi SSL dari koneksi localhost, maka Anda sudah selesai. Namun, jika Anda juga ingin mengaktifkan remotelogin untuk MySQL, baca terus.

Aktifkan koneksi jarak jauh untuk MySQL

Instruksi berikut mengaktifkan koneksi jarak jauh untuk MySQL. Selain itu, pengguna jarak jauh ini harus memiliki file sertifikat yang ditandatangani oleh otoritas sertifikat (CA) Anda untuk terhubung.

Contoh ini menunjukkan (dengan menggunakan tiga tanda bintang:*** ) pengaturan yang memaksa tanda tangan CA jika Anda ingin mengizinkan koneksi jarak jauh tanpa CA.

  1. Gunakan editor teks baris perintah pilihan Anda untuk mengedit /etc/my.cnf file lagi:

    vim /etc/my.cnf
    

    atau

    nano /etc/my.cnf
    
  2. Sertakan yang berikut ini di bagian bawah [mysqld] bagian:

    bind-address = *
    require_secure_transport = ON 		***
    
  3. Simpan dan keluar dari file menggunakan :wq .

  4. Mulai ulang MySQL. Konfirmasikan MySQL berjalan lagi. Anda harus masuk ke shell MySQL lagi.

  5. Setelah Anda masuk, buat pengguna dengan menjalankan salah satu perintah berikut:

    CREATE USER 'example'@'%' IDENTIFIED BY 'password';
    

    atau

    CREATE USER 'example'@'%' IDENTIFIED BY 'password' REQUIRE X509; 	***
    
  6. Setelah Anda memberikan izin kepada pengguna ini ke database yang Anda inginkan agar mereka memiliki izin, hapus hak istimewa untuk memperbarui izin MySQL dari dalam shell:

    flush privileges;
    

Anda mungkin telah memperhatikan bahwa % terletak setelah @ simbol di create user sebelumnya perintah adalah apa yang sebenarnya menunjukkan pengguna sebagai pengguna jarak jauh.

Sebagai bonus, jika Anda memiliki pengguna yang mengakses MySQL hanya dari alamat IP statis, Anda dapat memasukkan alamat IP tersebut sebagai ganti % untuk memungkinkan pengguna tersebut mengakses MySQL dari alamat IP spesifik mereka. Namun, perhatikan bahwa pengguna dapat mengakses database hanya dari alamat IP tersebut. Jika alamat IP mereka berubah, mereka tidak lagi memiliki akses. Itulah sebabnya sebagian besar admin menggunakan pengaturan jarak jauh umum % sebagai gantinya.

Anda sekarang telah mengaktifkan koneksi SSL serta akses jarak jauh ke database MySQL Anda.


Linux
  1. Bagaimana cara mengaktifkan logging server DNS BIND untuk memantau kueri dan untuk pemecahan masalah?

  2. Cara Mengaktifkan Log Permintaan Lambat untuk MySQL

  3. Desktop Jarak Jauh untuk Mac dan Pintasan Keyboard

  1. Aktifkan SSL dan Koneksi Jarak Jauh untuk MySQL

  2. Metode koneksi MySQL

  3. Dasar-dasar pengguna dan basis data MySQL

  1. Daftar putih IP di CSF untuk koneksi MySQL jarak jauh

  2. CentOS / RHEL :Cara Mengaktifkan SSL Untuk Apache

  3. Periksa sertifikat jarak jauh - MySQL