Java
Si se está conectando a una instancia mediante Java, un certificado SSL es opcional, pero descargar un certificado SSL y cifrar la conexión mejorará la seguridad de su instancia. SSL está deshabilitado de forma predeterminada para instancias recién creadas, pero puede habilitar SSL haciendo referencia a Habilitación o deshabilitación de SSL. SSL cifra las conexiones a las bases de datos, pero aumenta el tiempo de respuesta de la conexión y el uso de la CPU. Por este motivo, no se recomienda habilitar SSL.
Prerrequisitos
Familiarícese con:
- Conceptos básicos de computadora
- Código Java
Obtención y uso de Java
- Descargue el controlador Jar desde: https://repo1.maven.org/maven2/org/mongodb/mongo-java-driver/3.0.4/
- Para ver la guía de uso, visite https://mongodb.github.io/mongo-java-driver/4.2/driver/getting-started/installation/.
Uso de un certificado SSL
- Descargue el certificado SSL y verifique el certificado antes de conectarse a las bases de datos.
- En el área DB Information de la página Basic Information, haga clic en
en el campo SSL para descargar el certificado raíz o el paquete de certificados. - Para obtener más información sobre cómo configurar una conexión SSL, consulte el documento oficial del controlador Java de MongoDB en 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 |
Descripción |
|---|---|
|
<username> |
Nombre de usuario actual. |
|
<password> |
Contraseña para el nombre de usuario actual |
|
<instance_ip> |
Si intenta obtener acceso a la instancia desde un ECS, establezca instance_ip en la dirección IP privada que se muestra en la página Basic Information de la instancia a la que desea conectarse. |
|
Si tiene la intención de acceder a la instancia a través de una EIP, establezca instance_ip en la EIP que se ha enlazado a la instancia. |
|
|
<instance_port> |
Puerto de la base de datos que se muestra en la página Basic Information. Valor predeterminado: 8635 |
|
<database_name> |
Nombre de la base de datos que se va a conectar. |
|
authSource |
Base de datos de usuarios de autenticación. El valor es admin. |
|
ssl |
Modo de conexión. true indica que se utiliza el modo de conexión SSL. |
keytool -importcert -trustcacerts -file <path to certificate authority file> -keystore <path to trust store> -storepass <password>
|
Parámetro |
Descripción |
|---|---|
|
<path to certificate authority file> |
Ruta para almacenar el certificado SSL. |
|
<path to trust store> |
Ruta para almacenar el truststore. Establezca este parámetro según sea necesario, por ejemplo, ./trust/certs.keystore. |
|
<password> |
Contraseña personalizada. |
- System.setProperty("javax.net.ssl.trustStore","<path to trust store>");
- System.setProperty("javax.net.ssl.trustStorePassword","<password>");
Para obtener más información sobre el código Java, consulte el siguiente ejemplo:
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. If the operation fails, an exception occurs.
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");
}
}
}
Conexión sin el certificado SSL
No es necesario descargar el certificado SSL porque no se requiere la verificación del certificado en el servidor.
mongodb://<username>:<password>@<instance_ip>:<instance_port>/<database_name>?authSource=admin&replicaSet=replica
|
Parámetro |
Descripción |
|---|---|
|
<username> |
Nombre de usuario actual. |
|
<password> |
Contraseña para el nombre de usuario actual |
|
<instance_ip> |
Si intenta obtener acceso a la instancia desde un ECS, establezca instance_ip en la dirección IP privada que se muestra en la página Basic Information de la instancia a la que desea conectarse. |
|
Si tiene la intención de acceder a la instancia a través de una EIP, establezca instance_ip en la EIP que se ha enlazado a la instancia. |
|
|
<instance_port> |
Puerto de la base de datos que se muestra en la página Basic Information. Valor predeterminado: 8635 |
|
<database_name> |
Nombre de la base de datos que se va a conectar. |
|
authSource |
Base de datos de usuarios de autenticación. El valor es admin. |
Para obtener más información sobre el código Java, consulte el siguiente ejemplo:
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. If the operation fails, an exception occurs.
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");
}
}
}