Java
Se você estiver se conectando a uma instância usando Java, um certificado SSL é opcional, mas baixar um certificado SSL e criptografar a conexão melhorarão a segurança de sua instância. SSL é desativado por padrão para instâncias recém-criadas, mas você pode ativar SSL consultando Ativação ou desativação de SSL. SSL criptografa conexões com bancos de dados, mas aumenta o tempo de resposta da conexão e o uso da CPU. Por esse motivo, a ativação de SSL não é recomendada.
Pré-requisitos
Familiarize-se com:
- Noções básicas de computador
- Código Java
Obter e utilizar Java
- Baixe o driver do Jar em https://repo1.maven.org/maven2/org/mongodb/mongo-java-driver/3.0.4/
- Para ver o guia de uso, visite https://mongodb.github.io/mongo-java-driver/4.2/driver/getting-started/installation/.
Usar um certificado SSL
- Baixe o certificado SSL e verifique o certificado antes de se conectar aos bancos de dados.
- Na página Instances, clique no nome da instância de BD de destino. Na área DB Information da página Basic Information, clique em no campo SSL para baixar certificado raiz ou do pacote de certificados.
- Para obter detalhes sobre como configurar uma conexão SSL, consulte o documento oficial do driver Java do MongoDB em https://www.mongodb.com/docs/drivers/java/sync/current/fundamentals/connection/tls/#std-label-tls-ssl.
mongodb://<username>:<password>@<instance_ip>:<instance_port>/<database_name>?authSource=admin&ssl=true
Parâmetro |
Descrição |
---|---|
<username> |
Nome de usuário atual. |
<password> |
Senha para o nome de usuário atual |
<instance_ip> |
Se você tentar acessar a instância de um ECS, defina instance_ip como o endereço IP privado exibido na página Basic Information da instância à qual você pretende se conectar. |
Se você tentar acessar a instância por meio de um EIP, defina instance_ip como o EIP vinculado à instância. |
|
Se vários endereços de host forem necessários, liste os endereços no formato de <instance_ip1>:<instance_port1>,<instance_ip2>:<instance_port2>....... Exemplo: mongodb://username:*****@127.***.***.1:8635,127.***.***.2:8635/?authSource=admin |
|
<instance_port> |
Porta do banco de dados exibida na página Basic Information. Valor padrão: 8635 |
<database_name> |
Nome do banco de dados a ser conectado. |
authSource |
Base de dados de utilizadores de autenticação. O valor é admin. |
ssl |
Modo de conexão. true indica que o modo de conexão SSL é usado. |
keytool -importcert -trustcacerts -file <path to certificate authority file> -keystore <path to trust store> -storepass <password>
Parâmetro |
Descrição |
---|---|
<path to certificate authority file> |
Caminho para armazenar o certificado SSL. |
<path to trust store> |
Caminho para armazenar o repositório confiável. Defina este parâmetro conforme necessário, por exemplo, ./trust/certs.keystore. |
<password> |
Senha personalizada. |
- System.setProperty("javax.net.ssl.trustStore","<path to trust store>");
- System.setProperty("javax.net.ssl.trustStorePassword","<password>");
public class Connector { public static void main(String[] args) { try { System.setProperty("javax.net.ssl.trustStore", "./trust/certs.keystore"); System.setProperty("javax.net.ssl.trustStorePassword", "123456"); ConnectionString connString = new ConnectionString("mongodb://<username>:<password>@<instance_ip>:<instance_port>/<database_name>?authSource=admin&ssl=true"); MongoClientSettings settings = MongoClientSettings.builder() .applyConnectionString(connString) .applyToSslSettings(builder -> builder.enabled(true)) .applyToSslSettings(builder -> builder.invalidHostNameAllowed(true)) .build(); MongoClient mongoClient = MongoClients.create(settings); MongoDatabase database = mongoClient.getDatabase("admin"); //Ping the database. Se a operação falhar, ocorre uma exceção. BsonDocument command = new BsonDocument("ping", new BsonInt64(1)); Document commandResult = database.runCommand(command); System.out.println("Connect to database successfully"); } catch (Exception e) { e.printStackTrace(); System.out.println("Test failed"); } } }
Conexão sem o certificado SSL
Você não precisa baixar o certificado SSL porque a verificação do certificado no servidor não é necessária.
mongodb://<username>:<password>@<instance_ip>:<instance_port>/<database_name>?authSource=admin
Parâmetro |
Descrição |
---|---|
<username> |
Nome de usuário atual. |
<password> |
Senha para o nome de usuário atual |
<instance_ip> |
Se você tentar acessar a instância de um ECS, defina instance_ip como o endereço IP privado exibido na página Basic Information da instância à qual você pretende se conectar. |
Se você tentar acessar a instância por meio de um EIP, defina instance_ip como o EIP vinculado à instância. |
|
Se vários endereços de host forem necessários, liste os endereços no formato de <instance_ip1>:<instance_port1>,<instance_ip2>:<instance_port2>....... Exemplo: mongodb://username:*****@127.***.***.1:8635,127.***.***.2:8635/?authSource=admin |
|
<instance_port> |
Porta do banco de dados exibida na página Basic Information. Valor padrão: 8635 |
<database_name> |
Nome do banco de dados a ser conectado. |
authSource |
Base de dados de utilizadores de autenticação. O valor é admin. |
public class Connector { public static void main(String[] args) { try { ConnectionString connString = new ConnectionString("mongodb://<username>:<password>@<instance_ip>:<instance_port>/<database_name>?authSource=admin"); MongoClientSettings settings = MongoClientSettings.builder() .applyConnectionString(connString) .retryWrites(true) .build(); MongoClient mongoClient = MongoClients.create(settings); MongoDatabase database = mongoClient.getDatabase("admin"); //Ping the database. Se a operação falhar, ocorre uma exceção. BsonDocument command = new BsonDocument("ping", new BsonInt64(1)); Document commandResult = database.runCommand(command); System.out.println("Connect to database successfully"); } catch (Exception e) { e.printStackTrace(); System.out.println("Test failed"); } } }