本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
更新您的 Amazon DocumentDB TLS 憑證
Amazon DocumentDB 叢集的憑證授權機構 (CA) 憑證將於 2024 年 8 月開始更新。如果您使用已啟用 Transport Layer Security (TLS) 的 Amazon DocumentDB 叢集 (預設設定),而且您尚未輪換用戶端應用程式和伺服器憑證,則需要下列步驟來緩解應用程式和 Amazon DocumentDB 叢集之間的連線問題。
CA 和伺服器憑證已更新,作為 Amazon DocumentDB 標準維護和安全最佳實務的一部分。用戶端應用程式必須將新的 CA 憑證新增至其信任存放區,且現有的 Amazon DocumentDB 執行個體必須更新,才能在此過期日期之前使用新的 CA 憑證。
更新您的應用程式和 Amazon DocumentDB 叢集
請遵循本節所述步驟更新您應用程式的憑證授權機構憑證套件 (步驟 1) 和您叢集的伺服器憑證 (步驟 2)。將變更套用至您的生產環境前,我們強烈在開發或預備環境中測試這些步驟。
注意
您必須在您擁有 Amazon DocumentDB 叢集的每個 AWS 區域 中完成步驟 1 和 2。
步驟 1:下載新的 CA 憑證並更新您的應用程式
下載新的 CA 憑證並更新您的應用程式,以使用新的 CA 憑證來建立 Amazon DocumentDB 的 TLS 連線。請從下列位置下載新的 CA 憑證套件:https://truststore.pki.rds.amazonaws.com/global/global-bundle.pemglobal-bundle.pem
的檔案。
注意
如果您要存取同時包含舊 CA 憑證 (rds-ca-2019-root.pem
) 和新 CA 憑證 (rds-ca-rsa2048-g1
、rds-ca-rsa4096-g1
、rds-ca-ecc384-g1
) 的金鑰存放區,請確認金鑰存放區選取 global-bundle
。
wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
接著更新您的應用程式,以使用新的憑證套件。新的 CA 套件包含舊 CA 憑證 (rds-ca-2019) 和新的 CA 憑證 (rds-ca-rsa2048-g1、rds-ca-rsa4096-g1、rds-ca-ecc384-g1)。只要在新的 CA 套件中有這兩個憑證,即可用兩個步驟更新您的應用程式和叢集。
對於 Java 應用程式,您必須使用新的 CA 憑證建立新的信任存放區。如需說明,請參閱 使用已啟用的 TLS 連線主題中的 Java 索引標籤。
如果要確認應用程式是否有在使用最新的憑證授權機構憑證套件,請參閱我如何確定自己使用的是最新的 CA 套件?。如果您已經在應用程式中使用最新的憑證授權機構憑證套件,可以跳到步驟 2。
如需搭配您的應用程式使用 CA 套件的範例,請參閱 加密傳輸中的資料 和 使用已啟用的 TLS 連線。
注意
MongoDB Go Driver 1.2.1 目前只接受 sslcertificateauthorityfile
中的一個 CA 伺服器憑證。請參閱使用已啟用的 TLS 連線來了解如何在 TLS 啟用時,使用 Go 連線至 Amazon DocumentDB。
步驟 2:更新伺服器憑證
更新應用程式以使用新的 CA 套件後,下一步是透過修改 Amazon DocumentDB 叢集中的每個執行個體來更新伺服器憑證。若要修改執行個體以使用新的伺服器憑證,請參閱下列指示。
Amazon DocumentDB 提供下列 CAs 來簽署資料庫執行個體的資料庫伺服器憑證:
-
rds-ca-ecc384-g1 — 使用憑證授權機構搭配 ECC 384 私有金鑰演算法和 SHA384 簽署演算法。此 CA 支援自動伺服器憑證輪換。這僅在 Amazon DocumentDB 4.0 和 5.0 上受支援。
-
rds-ca-rsa2048-g1 - 在大多數 AWS 區域中使用 RSA 2048 私有金鑰演算法和 SHA256 簽署演算法的憑證授權機構。此 CA 支援自動伺服器憑證輪換。
-
rds-ca-rsa4096-g1 — 使用憑證授權機構搭配 RSA 4096 私有金鑰演算法和 SHA384 簽署演算法。此 CA 支援自動伺服器憑證輪換。
注意
如果您使用的是 AWS CLI,您可以使用 describe-certificates 來查看上述憑證授權機構的有效性。
這些 CA 憑證包含在區域和全域憑證套件中。當您搭配資料庫使用 rds-ca-rsa2048-g1、rds-ca-rsa4096-g1 或 rds-ca-ecc384-g1 CA 時,Amazon DocumentDB 會管理資料庫上的資料庫伺服器憑證。Amazon DocumentDB 會在資料庫伺服器憑證過期之前自動輪換資料庫伺服器憑證。
注意
如果您的叢集正在下列引擎修補程式版本上執行,Amazon DocumentDB 不需要重新啟動以輪換憑證:
Amazon DocumentDB 3.6:1.0.208662 或更新版本
Amazon DocumentDB 4.0:2.0.10179 或更新版本
Amazon DocumentDB 5.0:3.0.4780 或更新版本
您可以執行下列命令來判斷目前的 Amazon DocumentDB 引擎修補程式版本:db.runCommand({getEngineVersion: 1})
。
更新伺服器憑證之前,請確定您已完成 步驟 1。
故障診斷
如果您在憑證輪換的過程中無法連接到叢集,我們建議您執行下列動作:
-
確認您的用戶端使用最新的憑證服務套件。請參閱 我如何確定自己使用的是最新的 CA 套件?。
-
確認您的執行個體使用最新的憑證。請參閱 如何知道哪些 Amazon DocumentDB 執行個體正在使用舊/新伺服器憑證?。
-
確認您的應用程式正在使用最新的憑證 CA。某些驅動程式 (例如 Java 和 Go) 需要額外的程式碼,才能將憑證套件中的多個憑證匯入信任存放區。如需使用 TLS 連線至 Amazon DocumentDB 的詳細資訊,請參閱 以程式設計方式連線至 Amazon DocumentDB。
-
聯絡支援。如果您有疑問或問題,請聯絡 支援
。
常見問答集
以下是與 TLS 憑證相關的一些常見問題。
要是我有問題,該怎麼辦?
如果您有疑問或問題,請聯絡 支援
如何知道我是否使用 TLS 連線到我的 Amazon DocumentDB 叢集?
您可以檢查叢集參數群組的 tls
參數,判斷您的叢集是否正在使用 TLS。如果 tls
參數設為 enabled
,即表示您正在使用 TLS 憑證連線到叢集。如需詳細資訊,請參閱管理 Amazon DocumentDB 叢集參數群組。
為何需要更新 CA 和伺服器憑證?
Amazon DocumentDB CA 和伺服器憑證正在更新,作為 Amazon DocumentDB 標準維護和安全性最佳實務的一部分。目前的 CA 和伺服器憑證將於 2024 年 8 月開始過期。
如果我未在過期日期前採取任何動作,會發生什麼情況?
如果您使用 TLS 連線至 Amazon DocumentDB 叢集,且未在 日之前變更憑證,則透過 TLS 連線的應用程式將無法再與 Amazon DocumentDB 叢集通訊。
Amazon DocumentDB 不會在過期前自動輪換資料庫憑證。您必須更新您的應用程式和叢集,才能在過期日期之前或之後使用新的 CA 憑證。
如何知道哪些 Amazon DocumentDB 執行個體正在使用舊/新伺服器憑證?
若要識別仍使用舊伺服器憑證的 Amazon DocumentDB 執行個體,您可以使用 Amazon DocumentDB AWS Management Console 或 AWS CLI。
辨識在您的叢集中仍在使用舊憑證的執行個體
登入 AWS Management Console,並在 https://console.aws.amazon.com/docdb
:// 開啟 Amazon DocumentDB 主控台。 -
在畫面右上角的區域清單中,選擇 AWS 區域 執行個體所在的 。
-
在主控台左側的導覽窗格中,選擇叢集。
-
憑證授權單位欄 (靠近資料表的最右側) 會顯示哪些執行個體仍在舊的伺服器憑證 (
rds-ca-2019
) 和新的伺服器憑證 () 上rds-ca-rsa2048-g1
。
若要辨識您的叢集中正使用舊伺服器憑證的執行個體,請搭配下列參數使用 describe-db-clusters
命令。
aws docdb describe-db-instances \ --filters Name=engine,Values=docdb \ --query 'DBInstances[*].{CertificateVersion:CACertificateIdentifier,InstanceID:DBInstanceIdentifier}'
如何修改 Amazon DocumentDB 叢集中的個別執行個體來更新伺服器憑證?
建議您同時為指定叢集中的所有執行個體更新伺服器憑證。若要修改叢集中的執行個體,您可以使用主控台或 AWS CLI。
注意
更新伺服器憑證前,請先確認您已完成步驟 1。
登入 AWS Management Console,並在 https://console.aws.amazon.com/docdb
:// 開啟 Amazon DocumentDB 主控台。 -
在畫面右上角的區域清單中,選擇 AWS 區域 叢集所在的 。
-
在主控台左側的導覽窗格中,選擇叢集。
-
憑證授權單位資料欄 (靠近資料表最右側) 會顯示哪些執行個體仍在舊的伺服器憑證 () 上
rds-ca-2019
。 -
在叢集資料表的叢集識別符下,選取要修改的執行個體。
-
選擇 Actions (動作),然後選擇 Modify (修改)。
-
在 Certificate authority (憑證授權單位) 下方,選取此執行個體新的伺服器憑證 (
rds-ca-rsa2048-g1
)。 -
您可以在下一頁上查看變更摘要。請注意,修改執行個體之前,會出現其他提醒來提醒您確保應用程式正使用最新的憑證 CA 套件,以免導致連線中斷。
-
您可以在下次維護時段中套用修改,或立即套用。
-
選擇 Modify instance (修改執行個體) 以完成更新。
完成下列步驟,使用 來識別和輪換現有 Amazon DocumentDB 執行個體的舊伺服器憑證 AWS CLI。
-
若要立即修改執行個體,請對叢集中的每個執行個體執行下列命令。
aws docdb modify-db-instance --db-instance-identifier
<yourInstanceIdentifier>
--ca-certificate-identifier rds-ca-rsa2048-g1 --apply-immediately -
若要修改叢集內的執行個體,以在叢集的下一個維護時段使用新的憑證授權機構憑證,請對叢集中的每個執行個體執行下列命令。
aws docdb modify-db-instance --db-instance-identifier
<yourInstanceIdentifier>
--ca-certificate-identifier rds-ca-rsa2048-g1 --no-apply-immediately
如果我將新的執行個體新增至現有叢集,會發生什麼情況?
所有建立的新執行個體將會使用舊的伺服器憑證,且需要使用舊 CA 憑證的 TLS 連線。在 2024 年 1 月 25 日之後建立的任何新 Amazon DocumentDB 執行個體,預設會使用新的憑證 rds-ca-rsa2048-g1。
如果我的叢集發生執行個體替換或容錯移轉作業,會發生什麼情況?
如果您的叢集發生執行個體替換作業,建立的新執行個體會繼續使用執行個體之前使用的相同伺服器憑證。我們建議您同時為所有執行個體更新伺服器憑證。如果我的叢集發生容錯移轉作業,會在新的主要伺服器上會使用伺服器憑證。
如果我沒有使用 TLS 連線到我的叢集,我仍需更新各個執行個體嗎?
我們強烈建議您啟用 TLS。如果您未啟用 TLS,仍建議您在計劃在未來使用 TLS 連線至叢集時輪換 Amazon DocumentDB 執行個體上的憑證。如果您從未計劃使用 TLS 連線到 Amazon DocumentDB 叢集,則不需要採取任何動作。
如果我沒有使用 TLS 連線到自己的叢集,但打算在未來這樣做,我該怎麼辦?
如果您在 2024 年 1 月之前建立叢集,請遵循上一節中的步驟 1 和步驟 2,以確保您的應用程式使用更新的 CA 套件,且每個 Amazon DocumentDB 執行個體都使用最新的伺服器憑證。如果您在 2024 年 1 月 25 日之後建立叢集,您的叢集將已有最新的伺服器憑證 (rds-ca-rsa2048-g1)。若要驗證您的應用程式是否使用最新的 CA 套件,請參閱 如果我沒有使用 TLS 連線到我的叢集,我仍需更新各個執行個體嗎?
截止日期是否可以延長到 2024 年 8 月之後?
如果您的應用程式透過 TLS 連線,則無法延長截止日期。
我如何確定自己使用的是最新的 CA 套件?
若要驗證您是否擁有最新的套件,請使用下列命令。若要執行此命令,您必須安裝 java,而且 java 工具必須位於 shell 的 PATH 變數中。如需詳細資訊,請參閱使用 Java
keytool -printcert -v -file global-bundle.pem
keytool -printcert -v -file global-bundle.p7b
我為何在 CA 套件的名稱中看到「RDS」?
對於某些管理功能,例如憑證管理,Amazon DocumentDB 會使用與 Amazon Relational Database Service (Amazon RDS) 共用的操作技術。
新憑證何時過期?
新的伺服器憑證將過期 (一般),如下所示:
-
rds-ca-rsa2048-g1 — 2061 年過期
-
rds-ca-rsa4096-g1 — 過期 2121
-
rds-ca-ecc384-g1 — 過期 2121
如果未在憑證過期之前採取行動,我會看到哪些類型的錯誤?
錯誤訊息會因驅動程式而異。一般而言,您會看到包含字串「憑證已過期」的憑證驗證錯誤。
如果我套用新的伺服器憑證,我可以還原為舊的伺服器憑證嗎?
如果您需要將執行個體還原為舊憑證,建議您對叢集中的所有執行個體都這樣做。您可以使用 AWS Management Console 或 來還原叢集中每個執行個體的伺服器憑證 AWS CLI。
登入 AWS Management Console,並在 https://console.aws.amazon.com/docdb
:// 開啟 Amazon DocumentDB 主控台。 -
在畫面右上角的區域清單中,選擇 AWS 區域 叢集所在的 。
-
在主控台左側的導覽窗格中,選擇叢集。
-
在叢集資料表的叢集識別符下,選取要修改的執行個體。選擇 Actions (動作),然後選擇 Modify (修改)。
-
在 Certificate authority (憑證授權單位) 下方,您可以選取舊的伺服器憑證 (
rds-ca-2019
)。 -
選擇 Continue (繼續) 以檢視修改摘要。
-
在此產生的頁面中,您可以選擇排程要在下一次維護時段中套用的修改項目,或立即套用修改項目。進行選取,並選擇 Modify instance (修改執行個體)。
注意
若您選擇立即套用您的修改項目,則系統會一併套用待定修改佇列內的任何變更。如果有任何待定修改需要停機才能執行,則選擇此選項可能會導致未預期的停機。
aws docdb modify-db-instance --db-instance-identifier
<db_instance_name>
ca-certificate-identifier rds-ca-2019<--apply-immediately | --no-apply-immediately>
如果選擇 --no-apply-immediately
,將在叢集的下一個維護時段套用變更。
如果我們從快照或時間點還原回復,是否會有新的伺服器憑證?
如果您在 2024 年 8 月之後還原快照或執行point-in-time還原,則建立的新叢集將使用新的 CA 憑證。
如果我無法從任何 Mac OS 直接連線至 Amazon DocumentDB 叢集,該怎麼辦?
Mac OS 已更新信任憑證的要求。信任的憑證現在必須在 397 天內有效 (請參閱 https://support.apple.com/en-us/HT211025
注意
此限制在較新版本的 Mac OS 中觀察到。
Amazon DocumentDB 執行個體憑證的有效期超過四年,超過 Mac OS 上限。若要從執行 Mac OS 的電腦直接連線至 Amazon DocumentDB 叢集,您必須在建立 TLS 連線時允許無效的憑證。在此情況下,無效的憑證表示有效期超過 397 天。您應該了解風險,才能在連線至 Amazon DocumentDB 叢集時允許無效的憑證。
若要使用 從 Mac OS 連線至 Amazon DocumentDB 叢集 AWS CLI,請使用 tlsAllowInvalidCertificates
參數。
mongo --tls --host <hostname> --username <username> --password <password> --port 27017 --tlsAllowInvalidCertificates