Ответ 1
Вы можете использовать опцию -eku, чтобы указать использование ключа в вашем сертификате.
Подробнее см. здесь: http://msdn.microsoft.com/en-us/library/aa386968(VS.85).aspx
Можно ли установить атрибуты использования ключа с помощью makecert или любого другого инструмента, который я могу использовать для создания собственных тестовых сертификатов?
Я заинтересован в том, что сертификаты, используемые для транспорта BizTalk Server AS2, требуют ключевого использования цифровой подписи для подписи и шифрования данных или шифрования ключа для шифрования/дешифрования, и я хочу поиграть с этой функцией.
Я вижу, как устанавливать расширенные атрибуты использования ключа с помощью makecert, но не использовать ключевые слова.
Вы можете использовать опцию -eku, чтобы указать использование ключа в вашем сертификате.
Подробнее см. здесь: http://msdn.microsoft.com/en-us/library/aa386968(VS.85).aspx
Пока вы не можете сделать самозаверяющий сертификат и установить параметры использования расширенного ключа с помощью 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) и установите его в личный магазин текущего пользователя на машине. Вы можете экспортировать его там, если хотите.
Я использовал это для создания сертификата для шифрования DSC PowerShell для тестирования.
Подробнее: https://technet.microsoft.com/en-us/library/dn296456.aspx#BKMK_New
MakeCert не позволяет указать использование ключа, а только расширенное использование ключа. Я думаю, вам нужен CA для создания более широкого сертификата.
Вы можете настроить собственный СА с сервером ubuntu. https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04