tencent cloud

文档反馈

使用多语言 SDK 通过 SSL 认证连接数据库

最后更新时间:2024-01-12 09:57:07

    Java

    keytool 为 Java 原生自带的密钥和证书管理工具,方便用户能够管理自己的公钥/私钥及证书,用于认证服务。keytool 将密钥(key)和证书(certificates)存储在 keystore 密钥库中。
    使用 keytool 工具转换证书格式:
    keytool -importcert -trustcacerts -file <certificate file> -keystore <trust store> -storepass <password>
    -file <certificate file>:指 SSL 证书或 TLS 证书文件 MongoDB-CA.crt
    -keystore <trust store>:指定密钥库的名称。
    -storepass <password> :指定密钥库的密码。
    设置 JVM 系统属性的密钥库,请根据实际替换 trustStore 与 password,以指向正确的密钥库。URI 拼接也请替换为访问数据库的用户密码信息。
    System.setProperty("javax.net.ssl.trustStore", trustStore);
    System.setProperty("javax.net.ssl.trustStorePassword", password);
    
    import com.mongodb.MongoClientURI;
    import com.mongodb.MongoClientOptions;
    
    String uri = "mongodb://mongouser:password@10.x.x.1:27017/admin";
    MongoClientOptions opt = MongoClientOptions.builder().sslEnabled(true).sslInvalidHostNameAllowed(true).build();
    MongoClient client = new MongoClient(uri, options);

    Go

    如下为使用 GO 语言,通过 SSL 认证方式连接数据库的代码示例。请您根据实际情况替换证书文件 MongoDB-CA.crt 的路径、URI 中拼接的账号及其密码、IP 信息与端口信息。
    package main
    
    import (
    "context"
    "crypto/tls"
    "crypto/x509"
    "io/ioutil"
    
    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
    )
    
    func main() {
    ca, err := ioutil.ReadFile("MongoDB-CA.crt")
    if err != nil {
    return
    }
    pool := x509.NewCertPool()
    ok := pool.AppendCertsFromPEM([]byte(ca))
    if !ok {
    return
    }
    tlsConfig := &tls.Config{
    RootCAs: pool,
    InsecureSkipVerify: true,
    }
    uri := "mongodb://mongouser:password@10.x.x.1:27017/admin?ssl=true"
    clientOpt := options.Client().ApplyURI(uri)
    clientOpt.SetTLSConfig(tlsConfig)
    
    client, err := mongo.Connect(context.TODO(), clientOpt)
    if err != nil {
    return
    }
    client.Disconnect(context.TODO())
    }

    python

    如下为使用 Python 语言,通过 SSL 认证方式连接数据库的代码示例。请您根据实际情况替换证书文件 MongoDB-CA.crt 的路径、URI 中拼接的账号及其密码、IP 信息与端口信息。
    from pymongo import MongoClient
    uri = "mongodb://mongouser:password@10.x.x.1:27017/admin"
    client = MongoClient(uri,
    ssl=True,
    ssl_ca_certs='MongoDB-CA.crt',
    ssl_match_hostname=False)
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持