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

keytool 为 Java 原生自带的密钥和证书管理工具,方便用户能够管理自己的公钥/私钥及证书,用于认证服务。keytool 将密钥(key)和证书(certificates)存储在 keystore 密钥库中。

相关产品
云数据库 MongoDB 产品页,含版本规格、价格与购买入口。

一、Java

使用 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 mainimport ( "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 MongoClienturi = "mongodb://mongouser:password@10.x.x.1:27017/admin"client = MongoClient(uri, ssl=True, ssl_ca_certs='MongoDB-CA.crt', ssl_match_hostname=False)

赞 (0)
上一篇 4天前
下一篇 4天前