Хотя вы не можете сделать самозаверяющий сертификат и установить параметры расширенного использования ключа с помощью 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 = "cn=me@example.com"
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) и установит его в личный магазин текущего пользователя на машине. Вы можете экспортировать его оттуда, если хотите.
Я использовал это для создания сертификата для шифрования PowerShell DSC, для тестирования.
Для более подробной информации: https://technet.microsoft.com/en-us/library/dn296456.aspx#BKMK_New