Установка атрибутов использования ключа с помощью Makecert - PullRequest
19 голосов
/ 02 июня 2010

Можно ли установить атрибуты Key Usage с помощью makecert или любого другого инструмента, который я могу использовать для генерации собственных тестовых сертификатов?

Причина, по которой меня интересует, заключается в том, что сертификаты, используемые для транспорта BizTalk Server AS2, требуют ключевого использования цифровой подписи для подписи и шифрования данных или ключа шифрования для шифрования / дешифрования, и я хочу поиграть с этой функцией.

Я вижу, как установить расширенные ключевые атрибуты использования с makecert, но не использование ключа.

Ответы [ 4 ]

6 голосов
/ 22 марта 2016

Хотя вы не можете сделать самозаверяющий сертификат и установить параметры расширенного использования ключа с помощью 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, для тестирования.

Example cert

Для более подробной информации: https://technet.microsoft.com/en-us/library/dn296456.aspx#BKMK_New

1 голос
/ 16 марта 2018

Цифровая подпись, шифрование данных и шифрование ключей могут быть добавлены с помощью командлета PowerShell New-SelfSignedCertificate. Одним из параметров New-SelfSignedCertificate является KeyUsage, где вы можете добавить DigitalSignature, DataEncipherment и KeyEncipherment.

Новый-SelfSignedCertificate описан в technet (https://technet.microsoft.com/library/hh848633)

Пример:

New-SelfSignedCertificate -Type Custom -Subject "CN=sample.com" -KeyUsage DataEncipherment, KeyEncipherment, DigitalSignature -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.1") -CertStoreLocation "Cert:\CurrentUser\My"

Пример охватывает аутентификацию клиента и аутентификацию сервера и создает сертификат в текущем хранилище пользователя под моим.

0 голосов
/ 14 ноября 2014

MakeCert не позволяет вам указать использование ключа, только расширенное использование ключа. Я думаю, что вам нужен центр сертификации для создания более широкого сертификата.

Вы можете настроить свой собственный CA с сервером Ubuntu. https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04

0 голосов
/ 09 июня 2010

Вы можете использовать опцию -eku, чтобы указать использование ключа для вашего сертификата.

Подробности здесь: http://msdn.microsoft.com/en-us/library/aa386968(VS.85).aspx

...