![](/img/trans.png)
[英]No suitable servers found (`serverSelectionTryOnce` set): [TLS handshake failed: error:14090086:SSL routines:ssl3_get_server_certificate
[英]Dumping mongodb error: error dialing cluster0-shard-00-00.fklgt.mongodb.net:27017: SSL errors: SSL routines:ssl3_get_server_certificate:certificate
我通常使用這個命令轉儲我的 mongodb 數據庫,它工作得很好:
mongodump --uri mongodb+srv://name:password@cluster0.fklgt.mongodb.net/database_name --archive="dump-copy-name" --forceTableScan
但是,我一直在嘗試轉儲不同的數據庫,它只是不斷記錄:
2021-06-21T18:43:39.206+0100 錯誤撥號 cluster0-shard-00-00.fklgt.mongodb.net:27017:SSL 錯誤:SSL 例程:ssl3_get_server_certificate:證書驗證失敗
知道發生了什么嗎?
mongodump 工具不會隱式信任您的系統證書存儲。 您需要將根 CA 證書傳遞給它,以便它可以驗證集群的證書。
要找出哪個證書是根證書,請使用 openssl:
openssl s_client -connect cluster0-shard-00-00.fklgt.mongodb.net:27017
輸出應包括一個certificate chain
部分,如:
---
Certificate chain
0 s:/C=US/ST=New York/L=New York/O=MongoDB, Inc./CN=*.mongodb.com
i:/C=US/O=DigiCert Inc/CN=DigiCert SHA2 Secure Server CA
1 s:/C=US/O=DigiCert Inc/CN=DigiCert SHA2 Secure Server CA
i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
---
(這是一個例子,用你的集群測試以獲得真正的證書)
鏈中編號最高的證書應該是根證書。 一旦你有了它,谷歌搜索CN
部分(在我的例子中是“DigiCert SHA2 Secure Server CA”),你應該找到一個下載證書的鏈接。
根應該是此處列出的兩個之一: https : //docs.atlas.mongodb.com/reference/faq/security/#hard-coded-certificate-authority
獲得 .pem 格式的根證書后,使用命令行選項--sslCAFile=<filename>
將其傳遞給 mongodump。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.