เมื่ออยู่ ๆ ก็เข้า vCenter ไม่ได้ หน้าจอเด้งฟ้องแถบสีแดงว่า “[500] An error occurred while fetching identity providers” ทั้งที่ Service ก็รันอยู่ปกติ ส่วนใหญ่ปัญหานี้ไม่ได้มาจาก Service ล่ม แต่มาจาก Certificate ของ vCenter หมดอายุ บทความนี้จะพาไปไล่ดูทีละขั้นว่าตรวจสอบยังไง และแก้ปัญหายังไงให้กลับมาใช้งานได้ในไม่กี่นาที
อาการของปัญหา
เมื่อเปิดหน้า Login ของ vCenter แล้วเจอแถบสีแดงด้านบนแจ้งว่า:
[500] An error occurred while fetching identity providers. Try again. If problem persists, contact your administrator.
แม้ว่าลองเปลี่ยนเบราว์เซอร์ ล้าง Cache เปลี่ยนบัญชีก็ไม่สามารถใช้งานได้

ซึ่งมื่อเช็คสถานะ Service ที่ vCenter Server Management (port 5480)
เข้า https://<IP-vcenter>:5480 ไปที่หน้า Summary ดูส่วน Health Status และ Single Sign-On
จากภาพจะเห็นว่า
- Overall Health: Good
- CPU / Memory / Database / Storage / Swap: Good ทั้งหมด
- Single Sign-On Domain
vsphere.localอยู่ในสถานะ Running
แปลว่า Service ระดับระบบยังทำงานปกติ ปัญหาจึงไม่ได้มาจาก Service ล่ม

ซึ่งเมื่อเช็คอายุ Certificate ที่เบราว์เซอร์คลิกที่ไอคอนแม่กุญแจตรง URL → ดูรายละเอียด Certificate ของหน้า vCenter
จากภาพ ส่วนValidity Period จะเห็นชัดเจนว่า
- Issued On: Fri, 26 Apr 2024 21:22:33 GMT
- Expires On: Mon, 27 Apr 2026 09:22:33 GMT
เมื่อเทียบกับวันที่ปัจจุบัน Certificate หมดอายุไปแล้ว นี่แหละคือต้นตอของ Error 500

ขั้นตอนการแก้ไข
1.อัปโหลดไฟล์ vCert เข้า vCenter โดยอย่างแรกทำการโหลดไฟล์ vCert-6.1.1-20260401.zip จาก vcert-scripted-vcenter-expired-certific จากนั้นทำการอัปโหลดไฟล์เข้า vCenter โดยในที่นี่จะใช้ WinSCP
เปิดโปรแกรม WinSCP แล้วตั้งค่าตามนี้
- File protocol: SFTP
- Host name: IP ของ vCenter
- Port number: 22
- User name: root
- Password: รหัสผ่านของ root
อย่าเพิ่งกด Login ให้กด Advanced… ก่อน

ตั้งค่า SFTP Server ให้ใช้ Shell
ที่หน้า Advanced Site Settings → ไปที่หัวข้อ SFTP ทางซ้ายมือ แล้วตั้งค่า
- SFTP server:
shell /usr/libexec/sftp-server
จากนั้นกด OK แล้วกลับไปกด Login อัปโหลดไฟล์ vCert-6.1.1-20260401.zip ไปที่ /root/


2.รัน vCert บน vCenter ผ่าน Console / SSH
ขั้นตอนถัดไปไปยัง Console หรือ SSH ของ vCenter ในฐานะ root ที่ prompt ของ vCenter เริ่มต้นจะขึ้นเป็น Command> ให้พิมพ์ shell เพื่อเข้า BASH shell ก่อน แล้วค่อยทำต่อไปนี้ตามลำดับ โดยที่ตรงนี้เป็นการแตกไฟล์ ZIP ออกมาแล้วเข้าไปในโฟลเดอร์ที่เพิ่งแตก ให้สิทธิ์ execute กับสคริปต์ vCert.py แล้วเรียกขึ้นมารัน
Command> shell
# cd /root/
# ls
# unzip -q vCert-6.1.1-20260401.zip
# cd vCert-6.1.1-20260401
# chmod +x vCert.py
# ./vCert.py

พอรันสคริปต์ขึ้นมา หน้าแรกจะมีข้อความ !!! Attention !!! เตือนว่าสคริปต์นี้ใช้งานภายใต้คำแนะนำของ Broadcom Global Support และให้สำรอง vCenter (snapshot หรือ VAMI backup) ให้เรียบร้อยก่อน เพราะถ้าทำผิดอาจทำให้ระบบใช้งานไม่ได้ พิมพ์ y เพื่อยอมรับความเสี่ยงและไปต่อ จากนั้นจะเข้าสู่เมนูหลักของ VCF/VVF Certificate Management Utility (version 6.1.1) ซึ่งมีตัวเลือกตั้งแต่ตรวจสอบสถานะ Certificate ดูข้อมูล Certificate, จัดการ Trust Anchor, Reset ทุก Certificate ด้วย VMCA-signed ไปจนถึงรีสตาร์ท Service

ก่อนที่จะรีบกดเปลี่ยน แนะนำให้เลือกข้อ 1. Check current certificate status ก่อนทุกครั้ง เพื่อให้รู้ว่ามี Certificate ตัวไหนหมดอายุบ้าง จะได้แก้เฉพาะตัวที่มีปัญหา ไม่ต้องไปยุ่งกับตัวอื่นโดยไม่จำเป็นซึ่งจากที่เห็นในตัวอย่างนี้ตัวที่มีปัญหาคือ Machine SSL Certificate ตัวเดียว ที่เหลือยังใช้ได้ครบ ดังนั้นเราจะ replace แค่ตัวเดียวพอ ไม่ต้องไป Reset ทั้งหมดให้เสี่ยงเพิ่ม

กลับมาที่เมนูหลักของ vCert แล้วเลือกข้อ 3. Manage certificates เพื่อเข้าโหมดจัดการ Certificate แต่ละชุด

ในเมนูของ Manage vCenter Certificates จะลิสต์ Certificate ออกมาให้เลือกเป็นหมวด ๆ เลือก 1. Machine SSL certificate ตามที่ตรวจสอบได้ก่อนหน้านี้ ระบบจะถามต่อว่าจะใช้วิธีไหนในการ Replace มีให้เลือกระหว่างใช้ Certificate ที่ออกโดย VMCA (ซึ่งเป็น CA ในตัวของ vCenter เอง) หรือใช้ Certificate ที่ออกโดย CA อื่นที่เราเตรียมไว้
ในเคสนี้เลือกข้อ 1. Replace Machine SSL certificate with VMCA-signed certificate เพราะระบบเดิมก็ใช้ VMCA อยู่แล้ว และต้องการแก้ปัญหาให้เร็วที่สุด หลังจากนั้นสคริปต์จะให้กรอกข้อมูล Certificate Signing Request ไล่ตั้งแต่ Country code, Organization, Organizational Unit, State, Locality, IP address, Email และ Additional hostnames ฟิลด์ไหนตรงกับค่า default ที่อยู่ใน [ ] อยู่แล้วก็กด Enter ผ่านได้เลย


จากนั้นเมื่อกรอกข้อมูล CSR เรียบร้อยตัว vCert จะลงมือทำงานเองทั้งหมด ทั้งสร้างไฟล์ config ของ certool ขึ้นมาใหม่ Regenerate Machine SSL certificate ตัวใหม่ Replace certificate และ private key ในระบบ Update SSL Trust Anchors , vCenter Extension Thumbprints ตรงนี้จะใช้เวลาเล็กน้อย
เมื่อเสร็จแล้วในขั้นตอนสุดท้ายสคริปต์จะถามว่าจะ Restart VMware services เลยไหม ตอบ Y ไปได้เลย

หลัง Service กลับมาครบ ลองเปิดเบราว์เซอร์ไปที่ URL ของ vCenter อีกครั้ง คราวนี้ไม่มีแถบ Error 500 แล้ว เข้าหน้า Login ได้ปกติ และเข้า vSphere Client ได้ตามเดิม
ลองคลิกดู Certificate ที่เบราว์เซอร์ก็จะเห็นว่าเป็นตัวใหม่ที่เพิ่งออกจาก VMCA Issued To cvcenter, Issued By CA (VMCA), Issued On Thursday, April 30, 2026 และ Expires On Saturday, April 29, 2028 หมายความว่าใช้งานได้อีกประมาณ 2 ปีเต็มก่อนถึงรอบต่ออายุครั้งถัดไป
