问题:
我有 CA 证书作为cafile.pem,PEM 证书作为mongodb.pem。我不确定如何在 java 中使用它来验证和连接 MongoDB。任何建议将不胜感激。如果您想提供更多信息,请告诉我。
设想:
我正在使用mongo-java-driver-3.4.3.jar连接到启用 SSL、启用身份验证的 MongoDB 3.7.9 分片集群,其中包含 3 个实例。下面是我试图连接到该服务器的 Java 代码。
import java.util.ArrayList;
import java.util.List;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoCredential;
import com.mongodb.ReadPreference;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
public class Starter {
public static void main(String[] args){
List<MongoCredential> mongoCredentials = new ArrayList<MongoCredential>();
mongoCredentials.add(MongoCredential.
createScramSha1Credential("admin", "admin", "admin".toCharArray()));
List<ServerAddress> serverAddressArray = new ArrayList<ServerAddress>();
serverAddressArray.add(new ServerAddress("xyz.domain.com", 27017));
MongoClientOptions options = new MongoClientOptions.Builder()
.sslInvalidHostNameAllowed(false)
.sslEnabled(true)
.readPreference(ReadPreference.primaryPreferred())
.build();
MongoClient mongoClient = new MongoClient(serverAddressArray, mongoCredentials, options);
try {
System.out.println("----- Step 1 ------");
MongoDatabase db = mongoClient.getDatabase("CIM");
System.out.println("----- Step 2 ------");
MongoCollection<Document> collection = db.getCollection("orders");
System.out.println("No of Documents in orders collection: " + collection.count());
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
无论如何,我可以在 RoboMongo3T 中按照以下配置连接 MongoServer。
湖上湖
相关分类