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 á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&replicaSet=replica&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. |
|
<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>");
Para obter detalhes sobre o código Java, consulte o exemplo a seguir:
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&replicaSet=replica&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&replicaSet=replica
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. |
|
<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. |
Para obter detalhes sobre o código Java, consulte o exemplo a seguir:
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&replicaSet=replica"); 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"); } }
}