Настройка атрибутов использования ключа с помощью Makecert

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

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

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

4 ответов


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

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


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


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

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


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

New-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"

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