■ 河北 王春海
編者按:可能有人在使用vCenter Server時會遇到證書過期的問題,這將導致我們無法有效管理VMware虛擬機。本文討論的就是筆者近期碰到的一些vCenter Server 6.5.0 U2(或從6.5.0 U2升級到6.5.0 U3或6.7.0)證書過期導致無法使用vCenter Server問題的解決案例及解決方法。
當vCenter Server的證書過期后將無法管理VMware虛擬機,管理員需要在證書過期之前續(xù)訂或者更新vCenter Server證書。
而如果vCenter Server證書已經(jīng)過期,可以登錄到vCenter Server虛擬機所在的ESXi主機,將ESXi主機時間改回到vCenter證書有效時間內(nèi),然后重新啟動vCenter Server虛擬機。在登錄到vCenter Server管理界面之后,就可以在系統(tǒng)管理中續(xù)訂根證書了。
但如果vCenter Server初始安裝版本是6.5.0 U2,那么不管vCenter Server 6.5.0 U2是否升級到新的版本,還需要在VMware官網(wǎng)下載fixsts.sh腳本來更換STS證書。
下面是筆者近期碰到的一些vCenter Server 6.5.0 U2(或從6.5.0 U2升級到6.5.0 U3或6.7.0)證書過期導致無法使用vCenter Server問題的解決案例及解決方法。
在今年6月4日,客戶向筆者表示,他們的vCenter Server無法登錄,并在登錄時提示密碼錯誤(用戶密碼一直未改,因此確認不是輸入錯誤也不是鍵盤的問題)。筆者經(jīng)過檢查發(fā)現(xiàn)vCenter Server的證書截止日期是2020年6月1日,證書已經(jīng)過期。
說明:當前vCenter Server Appliance版本為6.7.0,是從vCenter Server Appliance 6.5.0 U2升級而來。
因為客戶的vCenter Server已經(jīng)無法登錄,為了應急使用,可以將vCenter Server所在的ESXi主機時間修改為6月1日之前。
當然也可以使用vSphere Host Client,登錄vCenter Server所在的ESXi主機,修改ESXi主機的時間為6月1號之前,比如2020年5月30日。
登錄到vCenter Server Appliance管理界面(https://vc_ip:5480),首先檢查vCenter Server是否啟用了NTP,如果啟用了NTP,則修改vCenter Server與ESXi主機時間同步,如圖1所示。
重啟vCenter Server Appliance虛擬機,vCenter Server在重啟之后可以繼續(xù)使用。
之后通過使用vSphere Client登錄vCenter Server,續(xù)訂vCenter Server計算機證書。主要步驟如下。
1.使用 vSphere Client登錄到已連接到 Platform Services Controller的vCenter Server,然后使用administrator@vsphere.local身份登錄。
2.點擊進入“系統(tǒng)管理→證書→證書管理”中,在“服務器”文本框輸入“l(fā)ocalhost”,在用戶名中輸入“administrator@vsphere.local”然后在密碼中輸入administrator@vsphere.local密碼,單擊“登錄并管理證書”,如圖2所示。
3.在“證書管理”中,續(xù)訂“計算機SSL證書”,選擇“計算機SSL證書”,單擊“操作→續(xù)訂”,如圖3所示。
4.在彈出的“使用VMCA續(xù)訂證書”對話框中單擊“續(xù)訂”按鈕。
5.在“解決方案證書”中單擊“全部續(xù)訂”鏈接,續(xù)訂所有的解決方案用戶證書,續(xù)訂之后如圖4所示。
6.在Platform Services Controller上重新啟動服務??梢灾匦聠?Platform Services Controller,或者從命令行運行以下命令:
圖1 修改vCenter NTP方式
圖2 登錄并管理證書
圖3 續(xù)訂證書
service-control --stop --all
service-control --start vmafdd
圖4 續(xù)訂解決方案證書
圖5 重新啟動服務
service-control --start vmdird
service-control --start vmcad
service-control --start --all
如圖5所示。
在經(jīng)過了以上設(shè)置之后,vCenter Server Appliance證書經(jīng)過續(xù)訂就可以繼續(xù)使用了。
而如果續(xù)訂了證書之后,并將vCenter Server Appliance修改為了正確的時間,這時vCenter Server仍然無法登錄或者提示密碼不對。那么這就需要在https://kb.vmware.com/s/article/767 19?lang=en_US&query Term=76719上下載一個名為fixsts.sh的腳本,然后上傳到vCenter Server Appliance中執(zhí)行該腳本,替換STS(Security Token Service,安全令牌服務)證書以解決這個問題。
當STS證書過期時,會發(fā)生這些問題。內(nèi)部服務和解決方案用戶無法獲取有效令牌,并且無法按預期工作。當STS證書過期時,它不會發(fā)出警告。在某些系統(tǒng)上,此期限可能會在首次部署后的兩年內(nèi)發(fā)生。在以下情況下,STS簽名證書的預期壽命約為兩年。
圖6 執(zhí)行fixsts.sh腳本
1.全新安裝的vCenter Server 6.5 U2或更高版本。
2.全新安裝的PSC/vCen ter Server 6.5 U2或任何更高版本的6.5,并已升級到更高的版本,包括6.7和7.0。
3.在安裝PSC或vCenter Server之后,使用certool替換了STS簽名證書,STS簽名證書已替換為自定義證書(內(nèi)部/外部CA簽名)。
注意:下載的名為fixsts.sh腳本將與VMDIR的數(shù)據(jù)庫進行交互。運行腳本之前,請同時為SSO域中的所有vCenter Server和Platform Service Controller制作脫機快照。每個SSO域只能運行一次該腳本。
之后通過使用SSH登錄到vCenter Server,并在/tmp文件夾中使用vi fixsts.sh編輯新的文件。然后在Windows計算機上用“記事本”程序打開下載的fixsts.sh文件,復制所有內(nèi)容,并在vi中點擊“insert”按鈕,粘貼所復制的內(nèi)容,點擊ESC鍵,輸入“:wq”保存設(shè)置并退出。
然后執(zhí)行以下命令:
chmod +x fixsts.sh
./fixsts.sh
當在出現(xiàn)“Enter password for admini strator@vsphere.local:”的提示時,可以輸入admin istrator@vsphere.local的密碼并按回車鍵,如圖6所示。
腳本執(zhí)行完成后,依次執(zhí)行以下命令停止并重新啟動所有服務。
service-control --stop --all
service-control --start --all
用于vCenter Server App liance的fixsts.sh腳本下載鏈接為:
https://kb.vmware.com/sfc/servlet.shepherd/ver sion/download/068f400000 HnqyiAAB
關(guān)于“在vCenter Server Appliance 6.5/6.7上使用Shell腳本重新生成和替換已過期的STS證書(76719)”的KB地址為:
https://kb.vmware.com/s/article/76719?lang=en_US&queryTerm=76719
而如果是Windows版本的vCenter Server使用PowerShell腳本重新生成和替換已過期的STS證書,KB地址為:
圖7 續(xù)訂解決方案證書
https://kb.vmware.com/s/article/79263
如果是vCenter Server Appliance 6.0或6.5版本的話,則可以登錄VMware Platform Services Contro ller,來為vCenter Server續(xù)訂證書。
使用瀏覽器以“https://vCenter Server IP地址/psc”的方式登錄到VMware Plat form Services Controller。下面通過具體的實例進行介紹。
1.當前vCenter Server Appliance的IP地址是202.206.195.90,在瀏覽器中輸入“https://202.206.195.90/psc”來登錄Platform Services Controller,然后單擊“Certificates→Certificate Management”,在右側(cè)服務器中輸入“l(fā)ocal host”,然后輸入SSO帳戶和密碼登錄。
2.在“計算機證書”中單擊“續(xù)訂”鏈接,續(xù)訂計算機證書。
3.在“解決方案用戶證書”中單擊“全部續(xù)訂”項,續(xù)訂所有解決方案證書,續(xù)訂之后的效果如圖7所示。
在續(xù)訂計算機證書與所有解決方案證書之后,參照上文執(zhí)行fixsts.sh證書,續(xù)訂STS證書之后,重新啟動vCenter Server服務,并將ESXi主機與vCenter Server虛擬機調(diào)整為正確的時間,即可解決證書過期問題。