Если компания XYZ имеет Промежуточный центр сертификации , то вы можете. Сертификаты такого типа авторизуются корневым центром сертификации для выпуска новых сертификатов, и этот факт определяется во время создания конкретными свойствами (основные ограничения, использование ключа, расширенное использование ключа).
Но если компания XYZ имеет обычный сертификат, используемый, например, для идентификации веб-сайтов, пользователей электронной почты или разработчиков программного обеспечения, это невозможно. Даже если на практике ничто не мешает вам создать новый сертификат и подписать его другим (если у вас есть закрытый ключ), я не думаю, что вы получите действительный сертификат.
Итак, если у вас есть правильный вид сертификата, вам придется подписать его с помощью foo. Вы можете использовать makecert или open ssl для создания нового X509 сертификата . Например:
makecert -pe -n "CN=foo" -a sha1 -sky exchange -eku 1.3.6.1.5.5.7.3.1 -in "Company XYZ" -is my -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -ss my -sr LocalMachine
Вам понадобится сертификат для компании XYZ, установленный на локальном компьютере / в личном хранилище сертификатов Windows. Полученный сертификат будет добавлен в то же место, и вы сможете экспортировать его оттуда в различные форматы (.pfx, .cer, .p7b). Также это создает пару ключей для нового сертификата.