SSL è estremamente importante per mantenere la privacy e la validità dei tuoi dati su reti non affidabili. Se stai distribuendo un cluster di database di produzione su Internet, SSL è sicuramente qualcosa che dovresti considerare. ScaleGrid ora supporta l'abilitazione di SSL per i tuoi server MongoDB.
Abilitare SSL ora è facile come selezionare una casella nella procedura guidata di creazione di MongoDB:
Allora perché usare SSL con MongoDB?
-
Privacy
Se ti connetti al tuo server MongoDB su reti non protette, i tuoi dati viaggiano non crittografati e sono soggetti a intercettazioni e manomissioni. SSL crittografa i dati in modo che solo i due endpoint abbiano accesso ai dati non crittografati.
-
Autenticazione
Utilizza PKI (infrastruttura a chiave privata) per garantire che solo i client con certificati da una CA appropriata possano connettersi al server MongoDB. Questo è un passaggio aggiuntivo e puoi scegliere di non utilizzare i tuoi certificati o CA personalizzati:avrai comunque i vantaggi della privacy grazie alla crittografia end-to-end.
Svantaggi SSL MongoDB
-
Prestazioni generali
C'è sicuramente un sovraccarico di prestazioni per l'utilizzo di SSL. Anche se dobbiamo ancora eseguire test completi, l'utilizzo di SSL comporta un notevole sovraccarico.
-
Mancanza dell'interfaccia utente di MongoDB
La maggior parte delle popolari UI MongoDB non supportano SSL immediatamente. Quindi, potresti dover scegliere la versione a pagamento o utilizzare la console mongo.
Connessione al server MongoDB abilitato per SSL
Se ti stai connettendo a un server MongoDB con SSL abilitato, ci sono diverse differenze nel codice di connessione MongoDB. Per ulteriori dettagli, fai riferimento alla documentazione del tuo autista.
-
Conchiglia Mongo
Il client mongo predefinito non supporta le connessioni a un server abilitato SSL:è necessaria la build abilitata SSL di MongoDB. È possibile accedere tramite SSH al server abilitato SSL e quindi utilizzare il client mongo sul server per connettersi. Ecco la sintassi per connettersi utilizzando l'utente amministratore fornito da ScaleGrid:
mongo <span style="color: #758e9f;">--ssl --sslCAFile <file.crt></span> -u admin -p <pass> servername/admin
-
Codice
Dovrai aggiungere la proprietà "ssl=true" alla tua stringa di connessione MongoDB. Inoltre, alcune piattaforme (ad es. JDK) richiederanno di aggiungere la chiave pubblica del certificato SSL al percorso attendibile prima di poterti connettere al server. Per impostazione predefinita, viene generato un certificato autofirmato per ogni cluster. È possibile scaricare la chiave pubblica del certificato SSL dall'interfaccia utente oppure è possibile scaricare il certificato da /etc/ssl/mongodb-cert.crt sul server. Nell'interfaccia utente è disponibile un collegamento per scaricare il certificato pubblico SSL nella stringa di connessione modale:
Per ulteriori istruzioni su come inserire SSH nell'istanza, fai riferimento alla sezione "Credenziali VM" in questo post del blog. Il file crt si trova in /etc/ssl/mongodb-cert.crt sul server. Dopo aver scaricato la chiave pubblica, dovrai aggiungerla alla tua chiave di volta attendibile:
keytool -import -alias "MongoDB-cert" -file "/etc/ssl/mongodb-cert.crt" -keystore "/usr/java/default/jre/lib/security/cacerts" -noprompt -storepass "changeit"
La password predefinita per il negozio cacerts è "changeit". Per motivi di sicurezza, dovresti cambiare questa password con la tua. Dopo aver aggiunto il certificato, enumera i certificati nella chiave di volta per confermare che il certificato è stato aggiunto:
keytool -list -keystore cacerts -storepass changeit
-
Interfaccia utente Mongo:Robo 3T
Robo 3T (ex Robomongo) è una delle poche interfacce utente MongoDB che supportano la connessione con SSL. Quando crei una connessione al tuo server MongoDB, seleziona l'opzione SSL. Per il certificato, utilizzare il file .pem che contiene sia la chiave pubblica che la chiave privata. Questo file si trova in /etc/ssl sul tuo server MongoDB. Consulta la nostra Guida alla connessione di Robo 3T MongoDB per maggiori dettagli.
Come sempre, in caso di domande, contattaci all'indirizzo [email protected].