是的,AWS DocumentDB 支持验证 MongoDB 客户端证书的双向 SSL。主要需要通过在连接字符串中设置 ssl=true 进行启用 SSL。同时,aws documentdb 会验证用于连接的客户端证书。
以下是一个连接 AWS DocumentDB 并启用 SSL 的示例代码:
import pymongo
import ssl
client_cert_path = "path/to/client/certificate.pem"
client_key_path = "path/to/client/key.pem"
ca_cert_path = "path/to/ca/certificate.pem"
client = pymongo.MongoClient(
"mongodb+srv://cluster-name.cluster-id.region.mongodb.net/test?retryWrites=true&w=majority",
ssl=True,
ssl_certfile=client_cert_path,
ssl_keyfile=client_key_path,
ssl_ca_certs=ca_cert_path,
)
db = client.test
其中,client_cert_path 为客户端证书路径,client_key_path 为客户端私钥路径,ca_cert_path 为根证书路径。这些证书应该是使用 openssl 命令行工具生成的 PEM 格式文件。
在上述代码中,ssl 参数设置为 True 启用 SSL,ssl_certfile 和 ssl_keyfile 参数分别设置为客户端证书和私钥的路径,ssl_ca_certs 参数设置为根证书的路径。此外,此示例代码使用 PyMongo 驱动程序与 AWS DocumentDB 建立连接,建议先安装 PyMongo,方法为在终端中运行命令 pip install pymongo。
注意,如果您在创建 AWS DocumentDB 集群时启用了自定义 CA 证书,则需要在 ssl_ca_certs 参数中指定该证书的路径。否则,您可以使用 MongoDB 提供的默认 CA 证书,即在 ssl_ca_certs 参数中留空。