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