С удивлением обнаружил, что в vCenter 7 нет механизма в UI для удаления корневых сертификатов. Добавить можно, но не удалить. Странно, конечно. Будем удалять вручную CA сертификат из хранилища TRUSTED_ROOTS в VMware Endpoint Certificate Store(VECS).
vSphere Client или vSphere Web Client видит старые сертификаты и генерирует критическое предупреждение, которое мозолит глаза. При этом, если сертификат был боевой, то что-нибудь может сломаться. Сначала перевыпускаем сертификаты, добиваемся нормальной работы vCenter, а уже потом переходим к удалению всего ненужного.
Прежде чем удалять сертификаты убедитесь в том, что понимаете что делаете. И не удалите случайно что-нибудь не то. Перед началом работ сделайте резервную копию системы: выключите все ноды VCSA и PSC, сделайте снапшот, включите ноды. Откат делается таким же образом: выключите всё, откатите, включите.
Зачем удалять сертификаты?
Есть несколько причин для удаления CA сертификата из хранилища TRUSTED_ROOTS:
- Истёк срок действия сертификата. С точки зрения безопасности от него нужно избавиться.
- Сертификат скомпрометирован и отозван, такое бывает редко. От него нужно избавиться поскорее.
- Вы накосячили и залили не тот сертификат. Пока никто не увидел — быстро удаляем.
- Вы восстановили vCenter из старой резервной копии и там есть старые ненужные сертификаты.
- Вы криво удалили сертификат и он восстановился в хранилище.
Удаление сертификата
Получить список сертификатов можно через /usr/lib/vmware-vmafd/bin/vecs-cli.
/usr/lib/vmware-vmafd/bin/vecs-cli entry list --store TRUSTED_ROOTS --text | less
Находим в списке сертификатов нужный (точнее ненужный, который будем удалять). Копируем два значения: Alias и X509v3 Subject Key Identifier:
Alias : 2b724e6dd26e38b369a020f279f3bfc3369e2e7f X509v3 Subject Key Identifier: ED:CF:46:E5:CA:A6:8A:75:04:C0:D4:7B:2B:45:2C:08:53:10:F9:18
Список опубликованных доверенный сертификатов в VMware Directory Service можно получить командой /usr/lib/vmware-vmafd/bin/dir-cli. Понадобится пароль от administrator@vsphere.local.
/usr/lib/vmware-vmafd/bin/dir-cli trustedcert list
Number of certificates: 3 #1: CN(id): EDCF46E5CAA68A7504C0D47B2B452C085310F918 Subject DN: CN=CA, DC=vsphere, DC=local, C=US, ST=California, O=psc1, OU=VMware CRL present: yes #2: CN(id): 72B1C4C56A1A8A66B8C57182D551A29B78531ED0 Subject DN: CN=CA, DC=vsphere, DC=local, C=US, ST=California, O=psc2, OU=VMware CRL present: yes #3: CN(id): 7AF0962806F5997107BF9A213E86DED4F853FF70 Subject DN: CN=CA, DC=vsphere, DC=local, C=US, ST=California, O=psc1, OU=VMware CRL present: yes
В этом списке находим CN (thumbprint) сертификата, который соответствует идентификатору X509v3 Subject Key Identifier удаляемого сертификата, у нас в примере это EDCF46E5CAA68A7504C0D47B2B452C085310F918. Используя этот thumbprint выполняем команду (укажите свой пароль):
/usr/lib/vmware-vmafd/bin/dir-cli trustedcert get --id EDCF46E5CAA68A7504C0D47B2B452C085310F918 --login administrator@vsphere.local --password <PASSWORD> --outcert /tmp/oldcert.cer
Отменяем публикацию CA сертификата в VMDIR:
/usr/lib/vmware-vmafd/bin/dir-cli trustedcert unpublish --cert /tmp/oldcert.cer
Проверяем что сертификат удалён из списка доверенных сертификатов:
/usr/lib/vmware-vmafd/bin/dir-cli trustedcert list
Удаляем сертификат из VECS, используя сохранённый ранее алиас:
/usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store TRUSTED_ROOTS --alias 2b724e6dd26e38b369a020f279f3bfc3369e2e7f
Проверяем что сертификат удалён из хранилища TRUSTED_ROOTS:
/usr/lib/vmware-vmafd/bin/vecs-cli entry list --store TRUSTED_ROOTS --text | grep Alias
Принудительно обновляем VECS, если сред PSC несколько:
/usr/lib/vmware-vmafd/bin/vecs-cli force-refresh
Проверяем на всех PSC, что сертификата нет:
/usr/lib/vmware-vmafd/bin/vecs-cli entry list --store TRUSTED_ROOTS --text | grep Alias
Перезапускаем все службы.