2010-06-02 4 views
18

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

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

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

+0

Я думаю, что вы ищете '-sky' варианта – AaA

ответ

-4

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

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

+3

-eku позволяет установить * * расширенные ключевые использования, а не ключевые использований. – nlawalker

+1

Хм, я вижу ... В этом случае я предлагаю вам попробовать использовать Openssl для генерации вашего сертификата. Я не знаю ответа на вашу конкретную проблему с помощью openssl, но это мощный инструмент (лучше, чем makecert, на мой взгляд). Я предлагаю вам добавить флаг «openssl» к вашему вопросу и изменить заголовок на «makecert/Openssl». Возможно, таким образом вы получите более полезные ответы. Regard –

5

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

Example cert

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

+0

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