我无法通过TLS和monger连接到AWS DocumentDB数据库。我从AWS下载了PEM文件,并将它添加到一个新的keystore文件中。
keytool -import -alias documentdb_certs -storepass SomePassword -keystore documentdb_certs -file ./rds-combined-ca-bundle.pem我用的是商人:(:require [monger.core :as mg])
我尝试了不同的方式通过project.clj文件传递证书信息,如
:jvm-opts ["-Djavax.net.ssl.trustStore=<my path>/clojure/resources/aws-cert/documentdb_certs"
"-Djavax.net.ssl.trustStorePassword=<password>"
]或
:injections [
(.. System (setProperty "javax.net.ssl.trustStore" "<my path>/clojure/resources/aws-cert/documentdb_certs"))
(.. System (setProperty "javax.net.ssl.trustStorePassword" "MyPassWord"))
]我正在尝试连接如下所示
(defn simple-aggregate-function
"just trying"
([conn]
(let [db (mg/get-db conn "db_name")
collection "collection_name"]
(mc/aggregate db collection
[
{"match" {:createdDate {"$gte" "2022-03-01", "$lt" "2022-03-06"}}},
{"$sort" {:_id 1}}
]
:cursor {:batch-size 50}
))))
(def connection-uri-template2 "mongodb://%s:%s@%s:27017/%s?retryWrites=false&replicaSet=rs0&authSource=admin&tls=true")
(def connection-uri2 (format connection-uri-template2 user-name password db-server database))
(let [uri connection-uri2 {:keys [conn]} (mg/connect-via-uri uri)]
(do
(println connection-uri2)
(def result (simple-aggregate-function conn))
(println result)
)
(mg/disconnect conn))在运行应用程序时,我会得到超时。
我在我的网上搜索中找不到任何有用的东西。我想知道是否有人有一个工作配置的例子,或者可以勾勒出通过Monger和TLS成功连接到DocumentDB的步骤。
发布于 2022-04-19 11:16:01
您检查过亚马逊DocumentDB 文档的程序连接吗?rds-组合式-ca-bundle.pem文件包含每个AWS区域的多个证书,如果单击Java选项卡,那里有一个bash脚本,它解析.pem文件并在密钥存储库中正确导入证书。
https://stackoverflow.com/questions/71453557
复制相似问题