O SSL é extremamente importante para manter a privacidade e a validade de seus dados em redes não confiáveis. Se você estiver implantando um cluster de banco de dados de produção na Internet, o SSL é definitivamente algo que você deve considerar. O ScaleGrid agora suporta a habilitação de SSL para seus servidores MongoDB.
Ativar SSL agora é tão fácil quanto marcar uma caixa no assistente de criação do MongoDB:
Então, por que usar SSL com MongoDB?
-
Privacidade
Se você estiver se conectando ao seu servidor MongoDB em redes não seguras, seus dados estão viajando sem criptografia e são suscetíveis a espionagem e adulteração. O SSL criptografa os dados para que apenas os dois terminais tenham acesso aos dados não criptografados.
-
Autenticação
Use PKI (infraestrutura de chave privada) para garantir que apenas clientes com certificados de uma CA apropriada possam se conectar ao servidor MongoDB. Esta é uma etapa adicional e você pode optar por não usar seus certificados personalizados ou CA - você ainda terá os benefícios da privacidade devido à criptografia de ponta a ponta.
Desvantagens do MongoDB SSL
-
Despesas gerais de desempenho
Definitivamente, há alguma sobrecarga de desempenho ao usar SSL. Embora ainda estejamos para executar testes abrangentes, há uma sobrecarga definitiva devido ao uso de SSL.
-
Falta de interface do usuário do MongoDB
A maioria das UIs populares do MongoDB não suportam SSL de fábrica. Portanto, talvez seja necessário optar pela versão paga ou usar o console do mongo.
Conectando-se ao seu servidor MongoDB habilitado para SSL
Se você estiver se conectando a um servidor MongoDB com SSL habilitado, há várias diferenças no código de conexão do MongoDB. Consulte a documentação do seu motorista para mais detalhes.
-
Mongo Shell
O cliente mongo padrão não suporta conexões com um servidor habilitado para SSL – você precisa da versão habilitada para SSL do MongoDB. Você pode usar o SSH no servidor habilitado para SSL e, em seguida, usar o cliente mongo no servidor para se conectar. Aqui está a sintaxe para conectar usando o usuário admin fornecido pelo ScaleGrid:
mongo <span style="color: #758e9f;">--ssl --sslCAFile <file.crt></span> -u admin -p <pass> servername/admin
-
Código
Você precisará anexar a propriedade “ssl=true” à sua string de conexão do MongoDB. Além disso, certas plataformas (por exemplo, JDK) exigirão que você adicione a chave pública do certificado SSL ao caminho confiável antes de poder se conectar ao servidor. Por padrão, um certificado autoassinado é gerado para cada cluster. Você pode baixar a chave pública do certificado SSL da interface do usuário ou pode baixar o certificado de /etc/ssl/mongodb-cert.crt no servidor. Na interface do usuário, um link para baixar o certificado público SSL está disponível no modal de string de conexão:
Para obter mais instruções sobre como inserir o SSH na instância, consulte a seção "Credenciais da VM" nesta postagem do blog. O arquivo crt está localizado em /etc/ssl/mongodb-cert.crt no servidor. Depois de baixar a chave pública, você precisará adicioná-la à sua keystone confiável:
keytool -import -alias "MongoDB-cert" -file "/etc/ssl/mongodb-cert.crt" -keystore "/usr/java/default/jre/lib/security/cacerts" -noprompt -storepass "changeit"
A senha padrão para o armazenamento cacerts é “changeit”. Por motivos de segurança, você deve alterar esta senha para sua própria. Depois de adicionar o certificado, enumere os certificados na keystone para confirmar que o certificado foi adicionado:
keytool -list -keystore cacerts -storepass changeit
-
IU do Mongo:Robo 3T
Robo 3T (anteriormente Robomongo) é uma das poucas IUs do MongoDB que suportam conexão com SSL. Ao criar uma conexão com seu servidor MongoDB, selecione a opção SSL. Para o certificado, use o arquivo .pem que contém a chave pública e a chave privada. Este arquivo está localizado em /etc/ssl em seu servidor MongoDB. Confira nosso Guia de Conexão Robo 3T MongoDB para mais detalhes.
Como sempre, se você tiver alguma dúvida, entre em contato conosco em [email protected].