這將需要一點背景才能得到答案。
當您最初創建的CSR你真正得到的是一個公鑰/私鑰對和證書籤名請求或「企業社會責任」。 CSR包含公鑰和請求的屬性,如可分辨名稱。 CSR使用您的私鑰簽名,以便任何收件人都可以使用嵌入的公鑰來驗證CSR和所請求的屬性沒有被篡改。
什麼是少爲人知的是,CA未綁定應用在CSR中提供的所有屬性。例如,如果購買的證書是域驗證證書,並且CSR包含OU字段的值,則CA將僅刪除它們,只留下DN和SAN字段以及它們自己的信息。因此,您取回的證書可能與原始CSR有不同的字段。
當您從正在使用的證書相同的過程,除了新的CSR再次發生重新創建CSR反映了CA最初所做的任何更改。仔細檢查原始CSR和新生成的CSR通常會在SAN中顯示出差異,或者已將電子郵件聯繫人添加到DN中。但是,從CA的角度來看,這些差異是美觀的。
考慮到這一點,我們再來看看這些問題。
當我有兩個證書作爲RenewalCOMODO和oldCOMODO時,隊列管理器如何知道哪個是正確的?
假設您正在討論CA在響應原始和續訂CSR後提供的工件,QMgr不知道哪個是哪個。您可以運行receive
命令,並假設它們都由相同的CA簽名並使用相同的簽署者鏈,則可以使用。
這是管理員的責任,以驗證正確安裝證書。
如果選擇哪一個沒有過期,是不是已經在數據庫中過期了?
不可以。每個成功的receive
命令都會保留個人證書的私人部分並替換公開部分。該標籤與私營部分相關聯,這是檢查的唯一性,所以你不能(或至少應該不是如果沒有錯誤)能夠在同一個KDB兩個副本。
如果我們需要刪除舊的,添加更新的後,與替換證書有什麼區別?
只要確保你得到正確的證書。始終執行runmqakm -cert -details
命令或使用GUI檢查證書。
補充建議:
- 它的工作之前,務必使KDB的副本。
- 將您的CSR和證書的副本保存在KDB目錄中。
- 我喜歡在文件名中使用時間戳,所以很明顯歷史是什麼。我的文件名全部以YYYYMMDD開頭,如
20150908_QMName_CSR.arm
和20150908_QMName_CSR_signed.arm
。
- 確保證書文件,KDB和目錄拿着他們被設置爲拒絕被比MQM服務帳戶之外的任何人的任何訪問的文件權限。如果不可行,請允許組訪問,但要確保mqm組的成員儘可能少。 任何可以讀取證書的人都可以使用它們。沒有必要知道KDB使用其包含的證書的密碼。
- 在進行維護,我喜歡做的KDB的新副本(帶時間戳的文件名如前面所述),當我敢肯定,這是我準備改變QMGR的
SSLKEYR
屬性指向它。然後我將舊文件更改爲只讀並在QMgr上發出RESET SECURITY TYPE(SSL)
。
- 請務必記得在QMgr上發出
RESET SECURITY TYPE(SSL)
。這是一個相當具有破壞性的命令,所以儘量不要在QMgr忙時發佈它。它將要求所有通道關閉,並且大量重新連接嘗試將阻止它快速完成。