Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2023-11-14 GMT+08:00

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

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.
Se você se conectar a uma instância de cluster usando Java, o formato do código será o seguinte:
mongodb://<username>:<password>@<instance_ip>:<instance_port>/<database_name>?authSource=admin&ssl=true
Tabela 1 Descrição do parâmetro

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.

Use a keytool para configurar o certificado de AC. Para obter detalhes sobre os parâmetros, consulte Tabela 2.
keytool -importcert -trustcacerts -file <path to certificate authority file> -keystore <path to trust store> -storepass <password>
Tabela 2 Descrição do parâmetro

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.

Defina as propriedades do sistema JVM no programa para apontar para o repositório confiável e repositório de chaves corretos:
  • 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&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.

Se você se conectar a uma instância de cluster usando Java, o formato do código será o seguinte:
mongodb://<username>:<password>@<instance_ip>:<instance_port>/<database_name>?authSource=admin
Tabela 3 Descrição do parâmetro

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.

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"); 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"); } } }