Это время замены сертификата SSL, и хотя я мог бы для своих серверов Windows сделать это утомительно способ (сертификаты mmc, импорт вручную), я ищу что-то, что я могу автоматизировать с помощью сценариев PowerShell.
Я знаю о Import-PfxCertificate , и чтобы импортировать .pfx, я бы сделал что-то вроде:
$pwd = ConvertTo-SecureString -String "PrivateKeyPasswordGoesHere" -AsPlainText -Force
Import-PfxCertificate -Password $pwd -FilePath "\\path\to\pfxfile\pfxfile.pfx" -CertStoreLocation Cert:\LocalMachine\My -Exportable # optional if i want the private key to be exportable
Это все хорошо, но в отличие от утомительного ручного способа, который вводит только сам сертификат объекта; он не вносит никаких других сертификатов в полную цепочку (корневые, промежуточные и т. д.).
Это выглядит так, как будто я могу что-то сделать с помощью Get-PfxData , который « извлекает содержимое файла обмена личной информацией (PFX) в структура, которая содержит сертификат конечного объекта, любые промежуточные и корневые сертификаты ", но Import-Certificate имеет обязательный параметр FilePath, поэтому я не могу передать ему выходные данные Get-PfxData.
Я использовал Get-PfxData, чтобы убедиться, что PFX действительно содержит полную цепочку .
Я также пробовал следующий подход:
Но опять же, Import-PfxCertificate не выполняет полную цепочку.
Есть ли другие варианты раскола этой гайки?
В итоге я сделал это вручную, используя команду Certificates mmc.
В конечном итоге, похоже, нет достаточной уверенности в том, что метод PowerShell может воспроизводить то же поведение, что и mmc, а для критически важных бизнес-приложений гарантия использования mmc была достаточно важной, чтобы вовремя и приложить усилия.
Если полная цепочка сертификатов является частью файла PFX, Import-PfxCertificate
импортирует все связанные сертификаты и поместит их в соответствующую папку.
Больше ничего делать не нужно.