SSL sangat penting untuk menjaga privasi dan validitas data Anda melalui jaringan yang tidak tepercaya. Jika Anda menggunakan cluster database produksi di internet, SSL jelas merupakan sesuatu yang harus Anda pertimbangkan. ScaleGrid sekarang mendukung pengaktifan SSL untuk server MongoDB Anda.
Mengaktifkan SSL sekarang semudah mencentang kotak di wizard pembuatan MongoDB:
Jadi Mengapa Menggunakan SSL dengan MongoDB?
-
Privasi
Jika Anda terhubung ke server MongoDB melalui jaringan yang tidak aman, data Anda berjalan tidak terenkripsi dan rentan terhadap penyadapan dan gangguan. SSL mengenkripsi data sehingga hanya dua titik akhir yang memiliki akses ke data yang tidak terenkripsi.
-
Otentikasi
Gunakan PKI (infrastruktur kunci pribadi) untuk memastikan bahwa hanya klien dengan sertifikat dari CA yang sesuai yang dapat terhubung ke server MongoDB. Ini adalah langkah tambahan dan Anda dapat memilih untuk tidak menggunakan sertifikat atau CA khusus – Anda akan tetap mendapatkan manfaat privasi karena enkripsi ujung ke ujung.
Kekurangan SSL MongoDB
-
Overhead Kinerja
Pasti ada beberapa overhead kinerja untuk menggunakan SSL. Meskipun kami belum menjalankan pengujian komprehensif, ada overhead yang pasti karena penggunaan SSL.
-
Kurangnya UI MongoDB
Sebagian besar UI MongoDB yang populer tidak langsung mendukung SSL. Jadi, Anda mungkin perlu menggunakan versi berbayar atau menggunakan konsol mongo.
Menghubungkan ke Server MongoDB Anda yang Diaktifkan SSL
Jika Anda terhubung ke server MongoDB dengan SSL diaktifkan, ada beberapa perbedaan dalam kode koneksi MongoDB. Lihat dokumentasi pengemudi Anda untuk detail selengkapnya.
-
Cangkang Mongo
Klien mongo default tidak mendukung koneksi ke server berkemampuan SSL – Anda memerlukan SSL-enabled-build dari MongoDB. Anda dapat SSH ke server berkemampuan SSL dan kemudian menggunakan klien mongo di server untuk terhubung. Berikut adalah sintaks untuk terhubung menggunakan pengguna admin yang disediakan oleh ScaleGrid:
mongo <span style="color: #758e9f;">--ssl --sslCAFile <file.crt></span> -u admin -p <pass> servername/admin
-
Kode
Anda harus menambahkan properti “ssl=true” ke string koneksi MongoDB Anda. Selain itu, platform tertentu (Misalnya JDK) akan meminta Anda untuk menambahkan kunci publik sertifikat SSL ke jalur tepercaya sebelum Anda dapat terhubung ke server. Secara default, sertifikat yang ditandatangani sendiri dibuat untuk setiap cluster. Anda dapat mengunduh kunci publik sertifikat SSL dari UI atau Anda dapat mengunduh sertifikat dari /etc/ssl/mongodb-cert.crt di server. Di UI, tautan untuk mengunduh sertifikat publik SSL tersedia di modal string koneksi:
Untuk petunjuk lebih lanjut tentang cara menggunakan SSH ke dalam instance, lihat bagian “Kredensial VM” di entri blog ini. File crt terletak di /etc/ssl/mongodb-cert.crt di server. Setelah Anda mengunduh kunci publik, Anda harus menambahkannya ke batu kunci tepercaya Anda:
keytool -import -alias "MongoDB-cert" -file "/etc/ssl/mongodb-cert.crt" -keystore "/usr/java/default/jre/lib/security/cacerts" -noprompt -storepass "changeit"
Kata sandi default untuk penyimpanan cacerts adalah “changeit”. Untuk alasan keamanan, Anda harus mengubah kata sandi ini menjadi milik Anda sendiri. Setelah Anda menambahkan sertifikat, sebutkan sertifikat di keystone untuk mengonfirmasi bahwa sertifikat telah ditambahkan:
keytool -list -keystore cacerts -storepass changeit
-
UI Mongo:Robo 3T
Robo 3T (sebelumnya Robomongo) adalah salah satu dari sedikit UI MongoDB yang mendukung koneksi dengan SSL. Saat membuat koneksi ke server MongoDB Anda, pilih opsi SSL. Untuk sertifikat, gunakan file .pem yang memiliki kunci publik dan kunci pribadi. File ini terletak di /etc/ssl di server MongoDB Anda. Lihat Panduan Koneksi Robo 3T MongoDB kami untuk detail selengkapnya.
Seperti biasa, jika Anda memiliki pertanyaan, hubungi kami di [email protected].