全部產品
Search
文件中心

ApsaraDB for MongoDB:使用Mongo Shell通過SSL加密串連資料庫

更新時間:Jun 19, 2024

在使用Mongo Shell串連資料庫時,您可以啟用SSL(Secure Sockets Layer)加密功能提高資料鏈路的安全性。通過SSL加密功能可以在傳輸層對網路連接進行加密,在提升通訊資料安全性的同時,保障資料的完整性。

前提條件

  • 執行個體類型為複本集執行個體或雲端硬碟版分區叢集執行個體。

    說明

    如果版本過低,您可以升級資料庫大版本

  • 執行個體已開啟SSL加密功能,詳情請參見設定SSL加密

  • 待串連資料庫的本機伺服器或ECS執行個體上已安裝3.0及以上版本的Mongo Shell。安裝步驟請參見Install MongoDB

  • 待串連資料庫的本機伺服器或ECS執行個體的IP地址已加入到MongoDB執行個體的白名單中,詳情請參見修改白名單

注意事項

  • 由於SSL加密的固有缺陷,啟用SSL加密會顯著增加CPU使用率,建議在有加密需求時才開通SSL加密(例如通過公網串連MongoDB執行個體)。

    說明

    內網鏈路相對較安全,一般無需對鏈路加密。

  • 執行個體開通SSL加密後,如果修改了執行個體的串連地址或申請了新的串連地址(包括新的節點串連地址和公網地址),新地址將無法使用SSL加密串連。如果想要新地址也使用SSL加密串連,您需要補救伺服器認證

操作步驟

本案例以Linux作業系統為例示範具體操作流程。

  1. 下載SSL CA認證,詳情請參見設定SSL加密

  2. 將解壓後的認證檔案上傳至安裝有Mongo Shell的本機伺服器或ECS執行個體中。

    說明

    本案例中,將.pem認證檔案上傳至本機伺服器的/test/sslcafile/目錄中。

  3. 在安裝有Mongo Shell的本機伺服器或ECS執行個體中,執行以下命令串連MongoDB資料庫。

    mongo --host <host> -u <username> -p --authenticationDatabase <database> --ssl --sslCAFile <sslCAFile_path> --sslAllowInvalidHostnames
    說明
    • <host>:Primary節點或Secondary節點的串連地址(含連接埠號碼),詳情請參見複本集執行個體串連說明

      • 如需通過公網串連資料庫,需要申請公網串連地址,詳情請參見申請公網串連地址

      • 如需通過內網地址串連資料庫,需要確保ECS執行個體與MongoDB執行個體的網路類型相同(如果是專用網路,需要在同一VPC中)。

    • <username>:MongoDB執行個體的資料庫帳號,初始帳號為root。不建議在生產環境中直接使用root帳號串連資料庫。您可以根據業務需求建立使用者並分配許可權,詳情請參見MongoDB資料庫帳號許可權管理

    • <database>:鑒權資料庫名,即資料庫帳號所屬的資料庫。當資料庫帳號為root時,對應的資料庫為admin。

    • <sslCAFile_path>:SSL認證檔案路徑。

    • --sslAllowInvalidHostnames:表示禁用TLS或SSL認證中的主機名稱驗證,允許串連到主機名稱不匹配的伺服器。如果SSL加密要求主機名稱驗證,則不要添加該參數配置。

    樣本:

    資料庫帳號為test,所屬資料庫為admin。

    mongo --host dds-bp19f409d7512****-pub.mongodb.rds.aliyuncs.com:3717 -u test -p --authenticationDatabase admin --ssl --sslCAFile /test/sslcafile/ApsaraDB-CA-Chain.pem  --sslAllowInvalidHostnames
  4. 當命令列提示Enter password:時,請輸入資料庫帳號對應的密碼並按斷行符號鍵確認。

    說明
    • 輸入密碼時,密碼字元是不可見的。

    • 如果忘記了root帳號的密碼,您可以通過設定密碼的方式來重設密碼。

常見的串連情境