SSL er ekstremt vigtigt for at bevare fortroligheden og gyldigheden af dine data over ikke-pålidelige netværk. Hvis du implementerer en produktionsdatabaseklynge på internettet, er SSL bestemt noget, du bør overveje. ScaleGrid understøtter nu aktivering af SSL for dine MongoDB-servere.
Aktivering af SSL er nu lige så let som at markere et felt i MongoDB-oprettelsesguiden:
Så hvorfor bruge SSL med MongoDB?
-
Privatliv
Hvis du opretter forbindelse til din MongoDB-server via usikrede netværk, rejser dine data ukrypteret og er modtagelige for både aflytning og manipulation. SSL krypterer dataene, så kun de to endepunkter har adgang til de ukrypterede data.
-
Godkendelse
Brug PKI (privat nøgleinfrastruktur) til at sikre, at kun klienter med certifikater fra en passende CA kan oprette forbindelse til MongoDB-serveren. Dette er et ekstra trin, og du kan vælge ikke at bruge dine brugerdefinerede certifikater eller CA – du vil stadig have fordelene ved privatliv på grund af ende-til-ende-kryptering.
MongoDB SSL Ulemper
-
Ydeevneomkostninger
Der er helt sikkert nogle præstationsomkostninger ved at bruge SSL. Selvom vi endnu mangler at køre omfattende tests, er der klare overhead på grund af brugen af SSL.
-
Mangel på MongoDB UI
De fleste af de populære MongoDB UI'er understøtter ikke SSL ud af boksen. Så du skal muligvis vælge den betalte version eller bruge mongo-konsollen.
Opretter forbindelse til din SSL-aktiverede MongoDB-server
Hvis du opretter forbindelse til en MongoDB-server med SSL aktiveret, er der flere forskelle i MongoDB-forbindelseskoden. Se venligst din drivers dokumentation for flere detaljer.
-
Mongo Shell
Mongo-standardklienten understøtter ikke forbindelser til en SSL-aktiveret server – du skal bruge den SSL-aktiverede-build af MongoDB. Du kan SSH ind i den SSL-aktiverede server og derefter bruge mongo-klienten på serveren til at oprette forbindelse. Her er syntaksen for at oprette forbindelse ved hjælp af admin-brugeren leveret af ScaleGrid:
mongo <span style="color: #758e9f;">--ssl --sslCAFile <file.crt></span> -u admin -p <pass> servername/admin
-
Kode
Du skal tilføje egenskaben "ssl=true" til din MongoDB-forbindelsesstreng. Desuden vil visse platforme (f.eks. JDK) kræve, at du tilføjer den offentlige nøgle til SSL-certifikatet til den betroede sti, før du kan oprette forbindelse til serveren. Som standard genereres et selvsigneret certifikat for hver klynge. Du kan downloade den offentlige nøgle til SSL-certifikatet fra brugergrænsefladen, eller du kan downloade certifikatet fra /etc/ssl/mongodb-cert.crt på serveren. I brugergrænsefladen er et link til at downloade det offentlige SSL-certifikat tilgængeligt i forbindelsesstrengen:
Se afsnittet "VM-legitimationsoplysninger" i dette blogindlæg for at få flere instruktioner om, hvordan du kan SSH ind i instansen. Crt-filen er placeret på /etc/ssl/mongodb-cert.crt på serveren. Når du har downloadet den offentlige nøgle, skal du tilføje den til din betroede keystone:
keytool -import -alias "MongoDB-cert" -file "/etc/ssl/mongodb-cert.crt" -keystore "/usr/java/default/jre/lib/security/cacerts" -noprompt -storepass "changeit"
Standardadgangskoden til cacerts-butikken er "changeit". Af sikkerhedsmæssige årsager bør du ændre denne adgangskode til din egen. Når du har tilføjet certifikatet, skal du opregne certifikaterne i keystone for at bekræfte, at certifikatet er blevet tilføjet:
keytool -list -keystore cacerts -storepass changeit
-
Mongo UI:Robo 3T
Robo 3T (tidligere Robomongo) er en af de få MongoDB-brugergrænseflader, der understøtter forbindelse med SSL. Når du opretter en forbindelse til din MongoDB-server, skal du vælge SSL-indstillingen. Til certifikatet skal du bruge .pem-filen, der både har den offentlige nøgle og den private nøgle. Denne fil er placeret på /etc/ssl på din MongoDB-server. Se vores Robo 3T MongoDB Connection Guide for flere detaljer.
Som altid, hvis du har spørgsmål, bedes du kontakte os på [email protected].