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