本次因AddTrust root憑證到期,而產生之系列事件, 首先,此到期事件並非突發事件,每張憑証本來就皆有其壽命期限,所以root及期chain憑証到期並非發生意外事件。 Email通知有掉信或直接歸為垃圾信的可能,請勿只被動的等待通知,多到主動到官網查看新聞或技術文件,亦可多注意資安相關新聞。
在正確安裝狀況下(指的是憑證練正確接續完成),屬於一般網頁伺服器服務的用戶,不須執行任何修改或更新的動作,網頁伺服器在憑證過期後也能正常運行。一般使用者也不會有無法連線或瀏覽的狀況。 因為瀏覽器端會自動更新,所以通常連接不會中斷,但過舊,或許久未更新之瀏覽器端將有一定的可能會無法正常連線。
一般來說,寰宇數位提供之憑證鍊組合有以下幾種模式: Server憑證 => Sectigo OV中繼憑證 => UserTrust 交互驗證憑證(for AddTrust) => AddTrust 根憑證 (2000 ~2020年5月30日) (上面這種是為了提高最大相容性,提供給大部分客戶使用的建議組合)
Server憑證 => Sectigo OV中繼憑證 => UserTrust 根憑證 (上面這種是為了滿足全為SHA2高加密安全等級的最高安全性,提供給客戶使用的組合)
Server憑證 => Sectigo OV中繼憑證 => UserTrust 交互驗證憑證(for AAA) => AAA 根憑證 (2004 ~2028年12月31日) (上面這種是為了提高最大相容性,新提供給分客戶使用的建議組合,使用此組合2028年底記得要更新)
以上三種其中UserTrust憑證,可更換為COMODO憑證(兩年期以上憑證客戶)。 請注意上面範例說明是使用OV(有公司驗證),如果是使用DV(網域驗證)版,第一章中繼憑證是不同的。
無論使用哪一種組合,其中交互驗證憑證皆為雙CA簽發,除了外部root,另一個則是自己對自己簽的root,所以當後面過期後,皆會轉切為UserTrust root繼續提供認證服務。
本次AddTrust root過期,發生服務中斷者大都是因為使用再在Client/Server架構或B2B架構下的服務,此類客戶因牽涉到客戶端程式開發不同而影響不同,後續處理對應方式也不同。 有些客戶不需要做任何處哩,這類型客戶有的是因為只綁定Server憑證驗證,或是內部使用所以跳過憑證鍊驗證錯誤,又或是客戶端使用微軟的系統剛好也更新了。 但許多出問題的客戶都是因為未更新客戶端,而導致信任鍊斷鍊,應用在此類服務之用戶,整理以下經驗供用戶作為修正方向。 首先是伺服器端的更新,記得要重開機: (亦可使用COMODO版本之交互驗證憑證版本)
Windows / IIS : 新增 UserTrust 交互驗證憑證(for AAA) 及 AAA root , 刪除舊的UserTrust 交互驗證憑證(for AddTrust)。
Windows / Apache : 更新 UserTrust 的Bundle憑證(for AAA),重新設定config。
Windows / Java base : 更新keystore, 新增 UserTrust 交互驗證憑證(for AAA) ,新增AAA root, 刪除舊的UserTrust 交互驗證憑證(for AddTrust) 及 AddTrust root。
Linux / Apache : 更新 UserTrust 的Bundle憑證(for AAA),重新設定config。
Linux / Java base : 更新keystore, 新增 UserTrust 交互驗證憑證(for AAA) 及 AAA root, 刪除舊的UserTrust 交互驗證憑證(for AddTrust) 及 AddTrust root。
F5 / L4 : 新增 UserTrust 交互驗證憑證(for AAA) 及 AAA root, 刪除舊的UserTrust 交互驗證憑證(for AddTrust) 及 AddTrust root。
接下來是客戶端的更新 .Net : 使用 Windows 使用者端認證: 新增 UserTrust 交互驗證憑證(for AAA) 及 AAA root, 刪除舊的UserTrust 交互驗證憑證(for AddTrust)。
.Net : 使用 指定檔案認證: 修正該檔案,新增 UserTrust 交互驗證憑證(for AAA) 及 AAA root, 刪除舊的UserTrust 交互驗證憑證(for AddTrust)。 PHP: 使用curl ,指定驗證PEM檔(ex:cacert.pem)連線 : 修改curl 指定檔案,新增 UserTrust 交互驗證憑證(for AAA) 及 AAA root, 刪除舊的UserTrust 交互驗證憑證(for AddTrust)。
Java: 修改cacerts檔案 : 使用keytool 工具,新增 UserTrust 交互驗證憑證(for AAA) 及 AAA root, 刪除舊的UserTrust 交互驗證憑證(for AddTrust)。
B2B : 例如webMethods, 因B2B都會將Server端憑證綁定,一般來說更新同上述方式, 但部份客戶會要求重發憑證,此時客戶端就必須重新綁定伺服器憑證。
基本上更新完成,重啟服務後就能恢復服務,如果服務仍中斷的話,需確認是SSL服務無法器動,還是客戶端因信任鍊中斷而連不上去。 Server端安裝完成後可利用openssl的 S_Client指令模擬客戶端檢驗伺服器是否正確安裝了SSL。 Client端的話只能額外增加Log去確認是否收到正確的憑證,或是客戶端環境無法正確辨識憑證鍊。
有客戶提到憑證時能正常服務,時而不行: 90%的狀況是因為有兩個以上的伺服器,卻只完成一台的更新,又或是連到一台不存在的服務上。 另一種狀況是外部環境再某些時候會不正常,例如防火牆或是中間的其他服務不正常。 最後是不常見的系統超載狀況,導致SSL無法正常服務。
以上更新指令的部份將會另外整理後提供,請查詢其他技術文件,或網路上也很多,並不難找。
|