Как правильно настроить поставщик криптографии для New-SelfSignedCertificate? - PullRequest
0 голосов
/ 29 июня 2019

Я использую Windows 10 и хочу создать самозаверяющий сертификат с настраиваемым поставщиком криптографии для теста моего приложения. и вот мой сценарий:

 New-SelfSignedCertificate -CertStoreLocation "Cert:\LocalMachine\My" -Provider "Microsoft Base Cryptographic Provider v1.0" -Subject "CN=test" -KeyUsage "CertSign", "CRLSign", "DigitalSignature", "NonRepudiation" -KeyExportPolicy Exportable -NotAfter (Get-Date).AddYears(40) -Type Custom

но я получаю эту ошибку:

New-SelfSignedCertificate : CertEnroll::CX509Enrollment::_CreateRequest: Provider type not defined. 0x80090017 (-2146893801 NTE_PROV_TYPE_NOT_DEF)
At line:1 char:2
+  New-SelfSignedCertificate -CertStoreLocation "Cert:\LocalMachine\My" ...
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [New-SelfSignedCertificate], Exception
    + FullyQualifiedErrorId : System.Exception,Microsoft.CertificateServices.Commands.NewSelfSignedCertificateCommand

Я должен использовать Microsoft Base Cryptographic Provider v1.0 в качестве поставщика (поскольку мое тестирующее приложение принимает сертификаты только с этим поставщиком), но ошибка выше. Как мне установить Тип Porvider , указанный в сообщении об ошибке?!

Ответы [ 2 ]

1 голос
/ 29 июня 2019

При использовании устаревших CSP необходимо указать параметр -KeySpec, в котором указывается тип ключа: обмен ключами или подпись. Исходя из ваших значений, оно должно быть AT_SIGNATURE, т.е. -KeySpec 2.

0 голосов
/ 29 июня 2019

найден ответ!он работал только в среде Windows Server, а не в моем клиенте win 10!

...