Мне нужно настроить сценарий развертывания, который импортирует сертификат SSL, который использует моя служба. Я пробовал импортировать с помощью WinHttpCertCfg и CertMgr, но безрезультатно.
Вот аргументы командной строки, которые я пытался использовать с обоими:
winhttpcertcfg.exe -i <certname>.pfx -c LOCAL_MACHINE\My -p <password> -a <user service runs as>
и
CertMgr.exe -add -all -s -r localMachine -c <cert name> My
Из того, что я исследовал, кажется, что CertMgr не позволяет импортировать сертификаты с паролем, поэтому я бы предпочел, чтобы winhttpcertcfg работал.
Когда я запускаю их, я получаю следующий результат: WinHttpCertCfg:
Microsoft (R) WinHTTP Certificate Configuration Tool
Copyright (C) Microsoft Corporation 2001.
CertMgr:
CertMgr Succeeded
Однако, когда я просматриваю сертификаты локальных машин в MMC, пытаюсь загрузить их из моей службы или перечислить их через winhttpcertcfg, или даже просматривая реестр в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ SystemCertificates \ MY \ Certificates, он не найден .
Я пробовал все следующее:
На данный момент у меня официально нет идей.
Спасибо.
Всегда есть CertUtil.exe:
CertUtil -p Password -ImportPFX File.pfx
Дополнительные возможности смотрите здесь:
http://technet.microsoft.com/en-us/library/cc732443.aspx
Или попробуйте:
CertUtil -ImportPFX -?
Я нашел ответ:
Оказывается, есть проблемы с серверной частью библиотеки, которую winhttpcertcfg использует для установки сертификата и Win 2008. Есть альтернатива, и это установка сертификатов с помощью Powershell. Вы можете написать сценарий для использования класса x509Certificate2 .NET и импортировать сертификат в любое нужное хранилище. Этот метод также дает вам больше гибкости для выполнения любых дополнительных проверок, которые вам нужны.
Подробнее Вот.