Пока вы не можете сделать самозаверяющий сертификат и установить параметры использования расширенного ключа с помощью makecert
Я думал, что я спаслю всех, что вы пытаетесь использовать, спустившись по пути использования OpenSSL для создания сертификата в Windows. Вместо этого вы можете использовать certreq
(который доступен, если у вас уже есть makecert
) и создайте собственный запрос для установки необходимых параметров.
Например, это устанавливает сертификат с EKU шифрования документов (1.3.6.1.4.1.311.80.1) и ключевые слова ключа шифрования и шифрования данных.
Создать новый файл, MyCert.inf
:
[Version]
Signature = "$Windows NT$"
[Strings]
szOID_ENHANCED_KEY_USAGE = "2.5.29.37"
szOID_DOCUMENT_ENCRYPTION = "1.3.6.1.4.1.311.80.1"
[NewRequest]
Subject = "[email protected]"
MachineKeySet = false
KeyLength = 2048
KeySpec = AT_KEYEXCHANGE
HashAlgorithm = Sha1
Exportable = true
RequestType = Cert
KeyUsage = "CERT_KEY_ENCIPHERMENT_KEY_USAGE | CERT_DATA_ENCIPHERMENT_KEY_USAGE"
ValidityPeriod = "Years"
ValidityPeriodUnits = "1000"
[Extensions]
%szOID_ENHANCED_KEY_USAGE% = "{text}%szOID_DOCUMENT_ENCRYPTION%"
Просто установите Subject
на то, что вам нужно.
Затем запустите:
certreq -new MyCert.inf MyCert.cer
Это создаст открытый ключ (X509 CERT) и установить ее на свой текущий пользователь персонального магазина на машине. Вы можете экспортировать его туда, если хотите.
Я использовал это для создания сертификата для шифрования PowerShell DSC для тестирования.
Для получения более подробной информации: https://technet.microsoft.com/en-us/library/dn296456.aspx#BKMK_New
Я думаю, что вы ищете '-sky' варианта – AaA