Saya mengkonfigurasi SSL untuk MySQL menggunakan skrip berikut.
#!/bin/bash
#
mkdir -p /root/abc/ssl_certs
cd /root/abc/ssl_certs
#
echo "--> 1. Create CA cert, private key"
openssl genrsa 2048 > ca-key.pem
echo "--> 2. Create CA cert, certificate"
openssl req -new -x509 -nodes -days 1000 -key ca-key.pem > ca-cert.pem
echo "--> 3. Create Server certificate, key"
openssl req -newkey rsa:2048 -days 1000 -nodes -keyout server-key.pem > server-req.pem
echo "--> 4. Create Server certificate, cert"
openssl x509 -req -in server-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem
echo ""
echo
echo ""
echo "--> 5. Create client certificate, key. Use DIFFERENT common name then server!!!!"
echo ""
openssl req -newkey rsa:2048 -days 1000 -nodes -keyout client-key.pem > client-req.pem
echo "6. Create client certificate, cert"
openssl x509 -req -in client-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > client-cert.pem
exit 0
File-file berikut ini dibuat:
ca-key.pem ca-cert.pem
server-req.pem server-key.pem server-cert.pem
client-req.pem client-key.pem client-cert.pem
Kemudian saya menggabungkan server-cert.pem dan client-cert.pem ke ca.pem (saya membaca di posting untuk melakukannya ..)
Saya membuat pengguna ssl di MySQL:
GRANT ALL ON *.* to sslsuer@hostname IDENTIFIED BY 'pwd' REQUIRE SSL;
Selanjutnya saya menambahkan yang berikut ini di my.cnf
[mysqld]
ssl-ca = /root/abc/ssl_certs/ca.pem
ssl-cert = /root/abc/ssl_certs/server-cert.pem
ssl-key = /root/abc/ssl_certs/server-key.pem
Setelah me-restart server, saya terhubung ke mysql tetapi SSL masih tidak digunakan :(
mysql -u ssluser -p
SSL: Not in use
Bahkan parameter have_ssl masih ditampilkan dinonaktifkan .. :(
mysql> show variables like '%ssl%';
+---------------+---------------------------------------------+
| Variable_name | Value |
+---------------+---------------------------------------------+
| have_openssl | DISABLED |
| have_ssl | DISABLED |
| ssl_ca | /root/abc/ssl_certs/ca.pem |
| ssl_capath | |
| ssl_cert | /root/abc/ssl_certs/server-cert.pem |
| ssl_cipher | |
| ssl_key | /root/abc/ssl_certs/server-key.pem |
+---------------+---------------------------------------------+
Apakah saya melewatkan langkah apa pun, atau apa salahnya ..
Jawaban dengan langkah-langkah yang terlewat secara terperinci akan sangat dihargai ..
mysql
ssl
ssl-certificate
encryption
Sinar matahari
sumber
sumber
mysql --ssl --help
Juga jangan lupa untuk me-restart mysql setelah melakukan modifikasi pada my.cnfmysql --ssl -u ssluser -p
untuk memaksa SSL pada klien. setelah bekerja, seseorang dapat mengidentifikasi mengapa REQuIRE SSL tidak.Jawaban:
Lihat solusinya di sini: /ubuntu/194074/enabling-ssl-in-mysql
Anda perlu mengonversi sertifikat ke format lama:
sumber
Coba periksa ini:
mysql
?) Membaca file. Dalam/root
saya tidak berpikir itu secara default.sumber
Di Ubuntu, Anda dapat memeriksa apakah
apparmor
memblokir akses ke file cert Anda, lihat manual .Maka Anda harus memeriksa izin file / kepemilikan dan menambahkan hak yang diperlukan untuk
/etc/apparmor.d/usr.sbin.mysqld
. Lihat utas ini .sumber
Saya punya masalah ini, dan itu membantu mengubah kepemilikan pada file .pem:
(Dari Craig Wright - /ubuntu/194074/enabling-ssl-in-mysql )
sumber
Tambahkan "ssl" di
[mysqld]
bagian dalammy.cnf
file likedan kemudian restart mysql dan periksa lagi. Itu akan berhasil.
sumber
Saya percaya masalah ini disebabkan oleh fakta bahwa Anda belum menentukan jalur file untuk CA cert, kunci server, dan cert server Anda dengan benar. Itu harus dalam format berikut ...
yaitu Anda memerlukan PATUH FILE LENGKAP dari sertifikat dan kunci dalam folder instalasi mysql Anda bukan jalur relatif '/ root /'.
Ini adalah contoh dari instalasi saya:
Lihat tautan berikut untuk informasi tambahan. https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-ssl.html
sumber
/
, yang berarti jalur penuh, bukan jalur relatif./root/
adalah folder home untuk pengguna root pada sistem unix.